Spring Integration

org.springframework.integration.amqp.channel
Class PollableAmqpChannel

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.channel.AbstractMessageChannel
          extended by org.springframework.integration.amqp.channel.AbstractAmqpChannel
              extended by org.springframework.integration.amqp.channel.PollableAmqpChannel
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, NamedComponent, PollableChannel, TrackableComponent, MessageChannel

public class PollableAmqpChannel
extends AbstractAmqpChannel
implements PollableChannel

A PollableChannel implementation that is backed by an AMQP Queue. Messages will be sent to the default (no-name) exchange with that Queue's name as the routing key.

Since:
2.1
Author:
Mark Fisher

Nested Class Summary
 
Nested classes/interfaces inherited from class org.springframework.integration.channel.AbstractMessageChannel
AbstractMessageChannel.ChannelInterceptorList
 
Field Summary
 
Fields inherited from class org.springframework.integration.channel.AbstractMessageChannel
logger
 
Constructor Summary
PollableAmqpChannel(java.lang.String channelName, org.springframework.amqp.core.AmqpTemplate amqpTemplate)
           
 
Method Summary
protected  java.lang.String getRoutingKey()
          Subclasses may override this method to return a routing key.
protected  void onInit()
          Subclasses may implement this for initialization logic.
 Message<?> receive()
          Receive a message from this channel, blocking indefinitely if necessary.
 Message<?> receive(long timeout)
          Receive a message from this channel, blocking until either a message is available or the specified timeout period elapses.
 void setAmqpAdmin(org.springframework.amqp.core.AmqpAdmin amqpAdmin)
          Provide an instance of AmqpAdmin for implicitly declaring Queues if the queueName is not provided.
 void setQueueName(java.lang.String queueName)
          Provide an explicitly configured queue name.
 
Methods inherited from class org.springframework.integration.amqp.channel.AbstractAmqpChannel
doSend, getExchangeName
 
Methods inherited from class org.springframework.integration.channel.AbstractMessageChannel
addInterceptor, getComponentType, getInterceptors, send, send, setConversionService, setDatatypes, setInterceptors, setShouldTrack
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getComponentName, getConversionService, getTaskScheduler, setBeanFactory, setBeanName, setComponentName, setTaskScheduler, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.springframework.integration.MessageChannel
send, send
 
Methods inherited from interface org.springframework.integration.context.NamedComponent
getComponentName
 

Constructor Detail

PollableAmqpChannel

public PollableAmqpChannel(java.lang.String channelName,
                           org.springframework.amqp.core.AmqpTemplate amqpTemplate)
Method Detail

setQueueName

public void setQueueName(java.lang.String queueName)
Provide an explicitly configured queue name. If this is not provided, then a Queue will be created implicitly with the channelName as its name. The implicit creation will require that either an AmqpAdmin instance has been provided or that the configured AmqpTemplate is an instance of RabbitTemplate.


setAmqpAdmin

public void setAmqpAdmin(org.springframework.amqp.core.AmqpAdmin amqpAdmin)
Provide an instance of AmqpAdmin for implicitly declaring Queues if the queueName is not provided. When providing a RabbitTemplate implementation, this is not strictly necessary since a RabbitAdmin instance can be created from the template's ConnectionFactory reference.


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

getRoutingKey

protected java.lang.String getRoutingKey()
Description copied from class: AbstractAmqpChannel
Subclasses may override this method to return a routing key. By default, there will be no routing key (empty string).

Overrides:
getRoutingKey in class AbstractAmqpChannel

receive

public Message<?> receive()
Description copied from interface: PollableChannel
Receive a message from this channel, blocking indefinitely if necessary.

Specified by:
receive in interface PollableChannel
Returns:
the next available Message or null if interrupted

receive

public Message<?> receive(long timeout)
Description copied from interface: PollableChannel
Receive a message from this channel, blocking until either a message is available or the specified timeout period elapses.

Specified by:
receive in interface PollableChannel
Parameters:
timeout - the timeout in milliseconds
Returns:
the next available Message or null if the specified timeout period elapses or the message reception is interrupted

Spring Integration