INT-3429 AMQP Publisher Confirm Config Improvement

JIRA: https://jira.spring.io/browse/INT-3429

Require a `confirm-correlation-expression` when a
`confirm-ack-channel` or `confirm-nack-channel` is
specified.
This commit is contained in:
Gary Russell
2014-06-17 13:03:33 -04:00
committed by Artem Bilan
parent 7beac06317
commit cf94a109b4

View File

@@ -32,6 +32,7 @@ import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.integration.amqp.AmqpHeaders;
import org.springframework.integration.amqp.support.AmqpHeaderMapper;
import org.springframework.integration.amqp.support.DefaultAmqpHeaderMapper;
import org.springframework.integration.channel.NullChannel;
import org.springframework.integration.handler.AbstractReplyProducingMessageHandler;
import org.springframework.integration.handler.ExpressionEvaluatingMessageProcessor;
import org.springframework.integration.support.AbstractIntegrationMessageBuilder;
@@ -174,6 +175,12 @@ public class AmqpOutboundEndpoint extends AbstractReplyProducingMessageHandler
this.correlationDataGenerator.setBeanFactory(beanFactory);
}
}
else {
Assert.state(this.confirmAckChannel == null || this.confirmAckChannel instanceof NullChannel,
"A 'confirmCorrelationExpression' is required when specifying a 'confirmAckChannel'");
Assert.state(this.confirmNackChannel == null || this.confirmNackChannel instanceof NullChannel,
"A 'confirmCorrelationExpression' is required when specifying a 'confirmNackChannel'");
}
if (this.returnChannel != null) {
Assert.isInstanceOf(RabbitTemplate.class, this.amqpTemplate,
"RabbitTemplate implementation is required for publisher confirms");