Spring AMQP

org.springframework.amqp.rabbit.core
Class RabbitTemplate

java.lang.Object
  extended by org.springframework.amqp.rabbit.support.RabbitAccessor
      extended by org.springframework.amqp.rabbit.core.RabbitTemplate
All Implemented Interfaces:
AmqpTemplate, RabbitOperations, InitializingBean

public class RabbitTemplate
extends RabbitAccessor
implements RabbitOperations

Helper class that simplifies synchronous RabbitMQ access code.

Author:
Mark Pollack, Mark Fisher

Field Summary
 
Fields inherited from class org.springframework.amqp.rabbit.support.RabbitAccessor
logger
 
Constructor Summary
RabbitTemplate()
           
RabbitTemplate(ConnectionFactory connectionFactory)
           
 
Method Summary
 void convertAndSend(Object object)
           
 void convertAndSend(Object message, MessagePostProcessor messagePostProcessor)
           
 void convertAndSend(String routingKey, Object object)
           
 void convertAndSend(String routingKey, Object message, MessagePostProcessor messagePostProcessor)
           
 void convertAndSend(String exchange, String routingKey, Object object)
           
 void convertAndSend(String exchange, String routingKey, Object message, MessagePostProcessor messagePostProcessor)
           
protected  void doSend(com.rabbitmq.client.Channel channel, String exchange, String routingKey, MessageCreator messageCreator)
          Send the given message to the specified exchange.
<T> T
execute(ChannelCallback<T> action)
           
protected  com.rabbitmq.client.Channel getChannel(RabbitResourceHolder holder)
          Fetch an appropriate Channel from the given RabbitResourceHolder.
protected  com.rabbitmq.client.Connection getConnection(RabbitResourceHolder holder)
          Fetch an appropriate Connection from the given RabbitResourceHolder.
 MessageConverter getMessageConverter()
          Return the message converter for this template.
protected  void initDefaultStrategies()
           
protected  boolean isChannelLocallyTransacted(com.rabbitmq.client.Channel channel)
          Check whether the given Channel is locally transacted, that is, whether its transaction is managed by this template's Channel handling and not by an external transaction coordinator.
 Message receive()
           
 Message receive(String queueName)
           
 Object receiveAndConvert()
           
 Object receiveAndConvert(String queueName)
           
 void send(MessageCreator messageCreator)
           
 void send(String routingKey, MessageCreator messageCreator)
           
 void send(String exchange, String routingKey, MessageCreator messageCreator)
           
 void setExchange(String exchange)
           
 void setImmediatePublish(boolean immediatePublish)
           
 void setMandatoryPublish(boolean mandatoryPublish)
           
 void setMessageConverter(MessageConverter messageConverter)
          Set the message converter for this template.
 void setQueue(String queue)
           
 void setRequireAck(boolean requireAck)
           
 void setRoutingKey(String routingKey)
           
 
Methods inherited from class org.springframework.amqp.rabbit.support.RabbitAccessor
afterPropertiesSet, convertRabbitAccessException, createChannel, createConnection, getConnectionFactory, isChannelTransacted, setChannelTransacted, setConnectionFactory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RabbitTemplate

public RabbitTemplate()

RabbitTemplate

public RabbitTemplate(ConnectionFactory connectionFactory)
Method Detail

initDefaultStrategies

protected void initDefaultStrategies()

setExchange

public void setExchange(String exchange)

setRoutingKey

public void setRoutingKey(String routingKey)

setQueue

public void setQueue(String queue)

setMandatoryPublish

public void setMandatoryPublish(boolean mandatoryPublish)

setImmediatePublish

public void setImmediatePublish(boolean immediatePublish)

setRequireAck

public void setRequireAck(boolean requireAck)

setMessageConverter

public void setMessageConverter(MessageConverter messageConverter)
Set the message converter for this template. Used to resolve Object parameters to convertAndSend methods and Object results from receiveAndConvert methods.

The default converter is a SimpleMessageConverter, which is able to handle byte arrays, Strings, and Serializable Objects.

See Also:
convertAndSend(java.lang.Object), receiveAndConvert(), org.springframework.amqp.support.converter.rabbit.support.converter.SimpleMessageConverter

getMessageConverter

public MessageConverter getMessageConverter()
Return the message converter for this template.


getConnection

protected com.rabbitmq.client.Connection getConnection(RabbitResourceHolder holder)
Fetch an appropriate Connection from the given RabbitResourceHolder.

Parameters:
holder - the RabbitResourceHolder
Returns:
an appropriate Connection fetched from the holder, or null if none found

getChannel

protected com.rabbitmq.client.Channel getChannel(RabbitResourceHolder holder)
Fetch an appropriate Channel from the given RabbitResourceHolder.

Parameters:
holder - the RabbitResourceHolder
Returns:
an appropriate Channel fetched from the holder, or null if none found

send

public void send(MessageCreator messageCreator)
          throws AmqpException
Specified by:
send in interface AmqpTemplate
Throws:
AmqpException

send

public void send(String routingKey,
                 MessageCreator messageCreator)
          throws AmqpException
Specified by:
send in interface AmqpTemplate
Throws:
AmqpException

send

public void send(String exchange,
                 String routingKey,
                 MessageCreator messageCreator)
          throws AmqpException
Specified by:
send in interface AmqpTemplate
Throws:
AmqpException

convertAndSend

public void convertAndSend(Object object)
                    throws AmqpException
Specified by:
convertAndSend in interface AmqpTemplate
Throws:
AmqpException

convertAndSend

public void convertAndSend(String routingKey,
                           Object object)
                    throws AmqpException
Specified by:
convertAndSend in interface AmqpTemplate
Throws:
AmqpException

convertAndSend

public void convertAndSend(String exchange,
                           String routingKey,
                           Object object)
                    throws AmqpException
Specified by:
convertAndSend in interface AmqpTemplate
Throws:
AmqpException

convertAndSend

public void convertAndSend(Object message,
                           MessagePostProcessor messagePostProcessor)
                    throws AmqpException
Specified by:
convertAndSend in interface AmqpTemplate
Throws:
AmqpException

convertAndSend

public void convertAndSend(String routingKey,
                           Object message,
                           MessagePostProcessor messagePostProcessor)
                    throws AmqpException
Specified by:
convertAndSend in interface AmqpTemplate
Throws:
AmqpException

convertAndSend

public void convertAndSend(String exchange,
                           String routingKey,
                           Object message,
                           MessagePostProcessor messagePostProcessor)
                    throws AmqpException
Specified by:
convertAndSend in interface AmqpTemplate
Throws:
AmqpException

receive

public Message receive()
                throws AmqpException
Specified by:
receive in interface AmqpTemplate
Throws:
AmqpException

receive

public Message receive(String queueName)
Specified by:
receive in interface AmqpTemplate

receiveAndConvert

public Object receiveAndConvert()
                         throws AmqpException
Specified by:
receiveAndConvert in interface AmqpTemplate
Throws:
AmqpException

receiveAndConvert

public Object receiveAndConvert(String queueName)
                         throws AmqpException
Specified by:
receiveAndConvert in interface AmqpTemplate
Throws:
AmqpException

execute

public <T> T execute(ChannelCallback<T> action)
Specified by:
execute in interface RabbitOperations

doSend

protected void doSend(com.rabbitmq.client.Channel channel,
                      String exchange,
                      String routingKey,
                      MessageCreator messageCreator)
               throws Exception
Send the given message to the specified exchange.

Parameters:
channel - the RabbitMQ Channel to operate within
exchange - the name of the RabbitMQ exchange to send to
routingKey - the routing key to
messageCreator - callback to create a Message
Throws:
IOException - if thrown by RabbitMQ API methods
Exception

isChannelLocallyTransacted

protected boolean isChannelLocallyTransacted(com.rabbitmq.client.Channel channel)
Check whether the given Channel is locally transacted, that is, whether its transaction is managed by this template's Channel handling and not by an external transaction coordinator.

Parameters:
channel - the Channel to check
Returns:
whether the given Channel is locally transacted
See Also:
ConnectionFactoryUtils.isChannelTransactional(com.rabbitmq.client.Channel, org.springframework.amqp.rabbit.connection.ConnectionFactory), RabbitAccessor.isChannelTransacted()

Spring AMQP

Copyright © 2010. All Rights Reserved.