Skip to content

Commit 674ad85

Browse files
committed
Polish "Add support for RabbitMQ's addressShuffleMode property"
See gh-23091
1 parent 4b77e2e commit 674ad85

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@
8383
* @author Gary Russell
8484
* @author Phillip Webb
8585
* @author Artsiom Yudovin
86-
* @author Jonghan Kim
8786
* @since 1.0.0
8887
*/
8988
@Configuration(proxyBeanMethods = false)

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
* @author Gary Russell
4343
* @author Artsiom Yudovin
4444
* @author Franjo Zilic
45-
* @author Jonghan Kim
4645
* @since 1.0.0
4746
*/
4847
@ConfigurationProperties(prefix = "spring.rabbitmq")
@@ -90,9 +89,9 @@ public class RabbitProperties {
9089
private String addresses;
9190

9291
/**
93-
* Shuffling mode for connecting host.
92+
* Mode used to shuffle configured addresses.
9493
*/
95-
private AddressShuffleMode addressShuffleMode;
94+
private AddressShuffleMode addressShuffleMode = AddressShuffleMode.NONE;
9695

9796
/**
9897
* Requested heartbeat timeout; zero for none. If a duration suffix is not specified,

spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1538,6 +1538,10 @@
15381538
"name": "spring.r2dbc.pool.validation-depth",
15391539
"defaultValue": "local"
15401540
},
1541+
{
1542+
"name": "spring.rabbitmq.address-shuffle-mode",
1543+
"defaultValue": "none"
1544+
},
15411545
{
15421546
"name": "spring.rabbitmq.cache.connection.mode",
15431547
"defaultValue": "channel"

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.springframework.amqp.rabbit.config.DirectRabbitListenerContainerFactory;
4343
import org.springframework.amqp.rabbit.config.RabbitListenerConfigUtils;
4444
import org.springframework.amqp.rabbit.config.SimpleRabbitListenerContainerFactory;
45+
import org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.AddressShuffleMode;
4546
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
4647
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory.CacheMode;
4748
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
@@ -137,12 +138,15 @@ void testDefaultConnectionFactoryConfiguration() {
137138
void testConnectionFactoryWithOverrides() {
138139
this.contextRunner.withUserConfiguration(TestConfiguration.class)
139140
.withPropertyValues("spring.rabbitmq.host:remote-server", "spring.rabbitmq.port:9000",
140-
"spring.rabbitmq.username:alice", "spring.rabbitmq.password:secret",
141-
"spring.rabbitmq.virtual_host:/vhost", "spring.rabbitmq.connection-timeout:123")
141+
"spring.rabbitmq.address-shuffle-mode=random", "spring.rabbitmq.username:alice",
142+
"spring.rabbitmq.password:secret", "spring.rabbitmq.virtual_host:/vhost",
143+
"spring.rabbitmq.connection-timeout:123")
142144
.run((context) -> {
143145
CachingConnectionFactory connectionFactory = context.getBean(CachingConnectionFactory.class);
144146
assertThat(connectionFactory.getHost()).isEqualTo("remote-server");
145147
assertThat(connectionFactory.getPort()).isEqualTo(9000);
148+
assertThat(connectionFactory).hasFieldOrPropertyWithValue("addressShuffleMode",
149+
AddressShuffleMode.RANDOM);
146150
assertThat(connectionFactory.getVirtualHost()).isEqualTo("/vhost");
147151
com.rabbitmq.client.ConnectionFactory rcf = connectionFactory.getRabbitConnectionFactory();
148152
assertThat(rcf.getConnectionTimeout()).isEqualTo(123);

0 commit comments

Comments
 (0)