From 10a556b3147fd6cf5ec3f5fa48475416a7e2af1c Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 28 Jul 2011 09:12:11 +0100 Subject: [PATCH] Add integration test for message post processor in RabbitTemplate --- .../amqp/rabbit/core/RabbitTemplate.java | 2 +- .../core/RabbitTemplateIntegrationTests.java | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/core/RabbitTemplate.java b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/core/RabbitTemplate.java index e47dc196..18a10fcd 100644 --- a/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/core/RabbitTemplate.java +++ b/spring-rabbit/src/main/java/org/springframework/amqp/rabbit/core/RabbitTemplate.java @@ -365,7 +365,7 @@ public class RabbitTemplate extends RabbitAccessor implements RabbitOperations { channel.basicPublish(exchange, routingKey, false, false, this.messagePropertiesConverter.fromMessageProperties(message.getMessageProperties(), encoding), message.getBody()); - // Check commit - avoid commit call within a JTA transaction. + // Check if commit needed if (isChannelLocallyTransacted(channel)) { // Transacted channel created by this template -> commit. RabbitUtils.commitIfNecessary(channel); diff --git a/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/core/RabbitTemplateIntegrationTests.java b/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/core/RabbitTemplateIntegrationTests.java index 9169f045..7a6b2e95 100644 --- a/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/core/RabbitTemplateIntegrationTests.java +++ b/spring-rabbit/src/test/java/org/springframework/amqp/rabbit/core/RabbitTemplateIntegrationTests.java @@ -30,6 +30,7 @@ import org.junit.Test; import org.springframework.amqp.AmqpException; import org.springframework.amqp.core.Message; +import org.springframework.amqp.core.MessagePostProcessor; import org.springframework.amqp.core.MessageProperties; import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.springframework.amqp.rabbit.connection.SingleConnectionFactory; @@ -83,6 +84,21 @@ public class RabbitTemplateIntegrationTests { assertEquals(null, result); } + @Test + public void testSendAndReceiveWithPostProcessor() throws Exception { + template.convertAndSend(ROUTE, (Object)"message", new MessagePostProcessor() { + public Message postProcessMessage(Message message) throws AmqpException { + message.getMessageProperties().setContentType("text/other"); + // message.getMessageProperties().setUserId("foo"); + return message; + } + }); + String result = (String) template.receiveAndConvert(ROUTE); + assertEquals("message", result); + result = (String) template.receiveAndConvert(ROUTE); + assertEquals(null, result); + } + @Test public void testSendAndReceive() throws Exception { template.convertAndSend(ROUTE, "message");