diff --git a/spring-cloud-stream-binder-rabbit-core/src/main/java/org/springframework/cloud/stream/binder/rabbit/properties/RabbitCommonProperties.java b/spring-cloud-stream-binder-rabbit-core/src/main/java/org/springframework/cloud/stream/binder/rabbit/properties/RabbitCommonProperties.java index 1d3a1bc28..abb66b29e 100644 --- a/spring-cloud-stream-binder-rabbit-core/src/main/java/org/springframework/cloud/stream/binder/rabbit/properties/RabbitCommonProperties.java +++ b/spring-cloud-stream-binder-rabbit-core/src/main/java/org/springframework/cloud/stream/binder/rabbit/properties/RabbitCommonProperties.java @@ -106,6 +106,16 @@ public abstract class RabbitCommonProperties implements MergableProperties { */ private String deadLetterExchange; + /** + * the type of the DLX, if autoBindDlq is true + */ + private String deadLetterExchangeType = ExchangeTypes.DIRECT; + + /** + * whether to declare the dead-letter exchange when autoBindDlq is true. + */ + private boolean declareDlx = true; + /** * a dead letter routing key to assign to that queue; if autoBindDlq is true, defaults to destination */ @@ -297,6 +307,22 @@ public abstract class RabbitCommonProperties implements MergableProperties { this.deadLetterExchange = deadLetterExchange; } + public String getDeadLetterExchangeType() { + return this.deadLetterExchangeType; + } + + public void setDeadLetterExchangeType(String deadLetterExchangeType) { + this.deadLetterExchangeType = deadLetterExchangeType; + } + + public boolean isDeclareDlx() { + return this.declareDlx; + } + + public void setDeclareDlx(boolean declareDlx) { + this.declareDlx = declareDlx; + } + public String getDeadLetterRoutingKey() { return this.deadLetterRoutingKey; } diff --git a/spring-cloud-stream-binder-rabbit-core/src/main/java/org/springframework/cloud/stream/binder/rabbit/provisioning/RabbitExchangeQueueProvisioner.java b/spring-cloud-stream-binder-rabbit-core/src/main/java/org/springframework/cloud/stream/binder/rabbit/provisioning/RabbitExchangeQueueProvisioner.java index 9c70f8894..092eeee5d 100644 --- a/spring-cloud-stream-binder-rabbit-core/src/main/java/org/springframework/cloud/stream/binder/rabbit/provisioning/RabbitExchangeQueueProvisioner.java +++ b/spring-cloud-stream-binder-rabbit-core/src/main/java/org/springframework/cloud/stream/binder/rabbit/provisioning/RabbitExchangeQueueProvisioner.java @@ -26,6 +26,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.amqp.AmqpConnectException; import org.springframework.amqp.core.AnonymousQueue; import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.Binding.DestinationType; import org.springframework.amqp.core.BindingBuilder; import org.springframework.amqp.core.DirectExchange; import org.springframework.amqp.core.Exchange; @@ -295,16 +296,15 @@ public class RabbitExchangeQueueProvisioner implements ApplicationListener