org.springframework.integration.amqp.channel
Class PollableAmqpChannel
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.channel.AbstractMessageChannel
org.springframework.integration.amqp.channel.AbstractAmqpChannel
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
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
PollableAmqpChannel
public PollableAmqpChannel(java.lang.String channelName,
org.springframework.amqp.core.AmqpTemplate amqpTemplate)
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