Skip to content

Commit 4c9e97a

Browse files
committed
fix to gh-17828
1 parent 178746d commit 4c9e97a

File tree

3 files changed

+30
-0
lines changed

3 files changed

+30
-0
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ public CachingConnectionFactory rabbitConnectionFactory(RabbitProperties propert
101101
map.from(properties::determineAddresses).to(factory::setAddresses);
102102
map.from(properties::isPublisherConfirms).to(factory::setPublisherConfirms);
103103
map.from(properties::isPublisherReturns).to(factory::setPublisherReturns);
104+
if (!properties.isPublisherConfirms()) {
105+
map.from(properties::isSimplePublisherConfirms).to(factory::setSimplePublisherConfirms);
106+
}
104107
RabbitProperties.Cache.Channel channel = properties.getCache().getChannel();
105108
map.from(channel::getSize).whenNonNull().to(factory::setChannelCacheSize);
106109
map.from(channel::getCheckoutTimeout).whenNonNull().as(Duration::toMillis)

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,11 @@ public class RabbitProperties {
9696
*/
9797
private boolean publisherReturns;
9898

99+
/**
100+
* Whether to enable simple publisher confirms.
101+
*/
102+
private boolean simplePublisherConfirms;
103+
99104
/**
100105
* Connection timeout. Set it to zero to wait forever.
101106
*/
@@ -290,6 +295,14 @@ public void setPublisherReturns(boolean publisherReturns) {
290295
this.publisherReturns = publisherReturns;
291296
}
292297

298+
public void setSimplePublisherConfirms(boolean simplePublisherConfirms) {
299+
this.simplePublisherConfirms = simplePublisherConfirms;
300+
}
301+
302+
public boolean isSimplePublisherConfirms() {
303+
return this.simplePublisherConfirms;
304+
}
305+
293306
public Duration getConnectionTimeout() {
294307
return this.connectionTimeout;
295308
}

spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,20 @@ void testConnectionFactoryPublisherSettings() {
210210
});
211211
}
212212

213+
@Test
214+
void testConnectionFactorySimplePublisherSettings() {
215+
this.contextRunner.withUserConfiguration(TestConfiguration.class)
216+
.withPropertyValues("spring.rabbitmq.simple-publisher-confirms=true",
217+
"spring.rabbitmq.publisher-returns=true")
218+
.run((context) -> {
219+
CachingConnectionFactory connectionFactory = context.getBean(CachingConnectionFactory.class);
220+
RabbitTemplate rabbitTemplate = context.getBean(RabbitTemplate.class);
221+
assertThat(connectionFactory.isSimplePublisherConfirms()).isTrue();
222+
assertThat(connectionFactory.isPublisherReturns()).isTrue();
223+
assertThat(getMandatory(rabbitTemplate)).isTrue();
224+
});
225+
}
226+
213227
@Test
214228
void testRabbitTemplateMessageConverters() {
215229
this.contextRunner.withUserConfiguration(MessageConvertersConfiguration.class).run((context) -> {

0 commit comments

Comments
 (0)