Spring Integration

org.springframework.integration.redis.inbound
Class RedisStoreMessageSource

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.redis.inbound.RedisStoreMessageSource
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, NamedComponent, MessageSource<org.springframework.data.redis.support.collections.RedisStore>, PseudoTransactionalMessageSource<org.springframework.data.redis.support.collections.RedisStore,org.springframework.data.redis.support.collections.RedisStore>

public class RedisStoreMessageSource
extends IntegrationObjectSupport
implements PseudoTransactionalMessageSource<org.springframework.data.redis.support.collections.RedisStore,org.springframework.data.redis.support.collections.RedisStore>

Inbound channel adapter which returns a Message representing a view into a Redis store. The type of store depends on the collectionType attribute. Default is LIST. This adapter supports 5 types of collections identified by RedisCollectionFactoryBean.CollectionType

Since:
2.2
Author:
Oleg Zhurakousky

Field Summary
 
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
logger
 
Constructor Summary
RedisStoreMessageSource(org.springframework.data.redis.connection.RedisConnectionFactory connectionFactory, org.springframework.expression.Expression keyExpression)
          Creates this instance with provided RedisConnectionFactory and SpEL expression which should resolve to a 'key' name of the collection to be used.
RedisStoreMessageSource(org.springframework.data.redis.core.RedisTemplate<java.lang.String,?> redisTemplate, org.springframework.expression.Expression keyExpression)
          Creates this instance with provided RedisTemplate and SpEL expression which should resolve to a 'key' name of the collection to be used.
 
Method Summary
 void afterCommit(java.lang.Object object)
          Invoked via TransactionSynchronization when the transaction commits.
 void afterReceiveNoTx(org.springframework.data.redis.support.collections.RedisStore resource)
          Called when there is no transaction and the receive() call completed.
 void afterRollback(java.lang.Object object)
          Invoked via TransactionSynchronization when the transaction rolls back.
 void afterSendNoTx(org.springframework.data.redis.support.collections.RedisStore resource)
          Called when there is no transaction and after the message was sent to the channel.
 org.springframework.data.redis.support.collections.RedisStore getResource()
          Obtain the resource on which appropriate action needs to be taken.
protected  void onInit()
          Subclasses may implement this for initialization logic.
 Message<org.springframework.data.redis.support.collections.RedisStore> receive()
          Returns a Message with the view into a RedisStore identified by keyExpression
 void setCollectionType(org.springframework.data.redis.support.collections.RedisCollectionFactoryBean.CollectionType collectionType)
           
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getComponentName, getComponentType, getConversionService, getTaskScheduler, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RedisStoreMessageSource

public RedisStoreMessageSource(org.springframework.data.redis.core.RedisTemplate<java.lang.String,?> redisTemplate,
                               org.springframework.expression.Expression keyExpression)
Creates this instance with provided RedisTemplate and SpEL expression which should resolve to a 'key' name of the collection to be used. It assumes that RedisTemplate is fully initialized and ready to be used. The 'keyExpression' will be evaluated on every call to the receive() method.

Parameters:
redisTemplate -
keyExpression -

RedisStoreMessageSource

public RedisStoreMessageSource(org.springframework.data.redis.connection.RedisConnectionFactory connectionFactory,
                               org.springframework.expression.Expression keyExpression)
Creates this instance with provided RedisConnectionFactory and SpEL expression which should resolve to a 'key' name of the collection to be used. It will create and initialize an instance of the RedisTemplate using StringRedisSerializer as key serializer and JdkSerializationRedisSerializer for value, hashKey and hashValue serializer. The 'keyExpression' will be evaluated on every call to the receive() method.

Parameters:
connectionFactory -
keyExpression -
Method Detail

setCollectionType

public void setCollectionType(org.springframework.data.redis.support.collections.RedisCollectionFactoryBean.CollectionType collectionType)

receive

public Message<org.springframework.data.redis.support.collections.RedisStore> receive()
Returns a Message with the view into a RedisStore identified by keyExpression

Specified by:
receive in interface MessageSource<org.springframework.data.redis.support.collections.RedisStore>

onInit

protected void onInit()
               throws java.lang.Exception
Description copied from class: IntegrationObjectSupport
Subclasses may implement this for initialization logic.

Overrides:
onInit in class IntegrationObjectSupport
Throws:
java.lang.Exception

getResource

public org.springframework.data.redis.support.collections.RedisStore getResource()
Description copied from interface: PseudoTransactionalMessageSource
Obtain the resource on which appropriate action needs to be taken. This resource is passed back into the other methods. In addition, it is made available to transaction synchronization SpEL expressions in the '#resource' variable.

Specified by:
getResource in interface PseudoTransactionalMessageSource<org.springframework.data.redis.support.collections.RedisStore,org.springframework.data.redis.support.collections.RedisStore>
Returns:
The resource.

afterCommit

public void afterCommit(java.lang.Object object)
Description copied from interface: PseudoTransactionalMessageSource
Invoked via TransactionSynchronization when the transaction commits.

Specified by:
afterCommit in interface PseudoTransactionalMessageSource<org.springframework.data.redis.support.collections.RedisStore,org.springframework.data.redis.support.collections.RedisStore>
Parameters:
object - The resource to be "committed"

afterRollback

public void afterRollback(java.lang.Object object)
Description copied from interface: PseudoTransactionalMessageSource
Invoked via TransactionSynchronization when the transaction rolls back.

Specified by:
afterRollback in interface PseudoTransactionalMessageSource<org.springframework.data.redis.support.collections.RedisStore,org.springframework.data.redis.support.collections.RedisStore>

afterReceiveNoTx

public void afterReceiveNoTx(org.springframework.data.redis.support.collections.RedisStore resource)
Description copied from interface: PseudoTransactionalMessageSource
Called when there is no transaction and the receive() call completed.

Specified by:
afterReceiveNoTx in interface PseudoTransactionalMessageSource<org.springframework.data.redis.support.collections.RedisStore,org.springframework.data.redis.support.collections.RedisStore>

afterSendNoTx

public void afterSendNoTx(org.springframework.data.redis.support.collections.RedisStore resource)
Description copied from interface: PseudoTransactionalMessageSource
Called when there is no transaction and after the message was sent to the channel.

Specified by:
afterSendNoTx in interface PseudoTransactionalMessageSource<org.springframework.data.redis.support.collections.RedisStore,org.springframework.data.redis.support.collections.RedisStore>

Spring Integration