From 373d51307b037ffd159a7a7a852784ec52ec9224 Mon Sep 17 00:00:00 2001 From: Jasmine Howard Date: Thu, 1 Oct 2020 17:52:21 -0400 Subject: [PATCH] implemented channelRpcTimeout to RabbitProperties class Added the property channelRpcTimeout in RabbitProperties.java file to be configurable in RabbitAutoConfiguration --- .../autoconfigure/amqp/RabbitAutoConfiguration.java | 2 ++ .../boot/autoconfigure/amqp/RabbitProperties.java | 13 +++++++++++++ .../amqp/RabbitAutoConfigurationTests.java | 3 ++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java index 967a87541d56..16c8079bf5db 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfiguration.java @@ -149,6 +149,8 @@ private RabbitConnectionFactoryBean getRabbitConnectionFactoryBean(RabbitPropert } map.from(properties::getConnectionTimeout).whenNonNull().asInt(Duration::toMillis) .to(factory::setConnectionTimeout); + map.from(properties::getChannelRpcTimeout).whenNonNull().asInt(Duration::toMillis) + .to(factory::setChannelRpcTimeout); map.from(credentialsProvider::getIfUnique).whenNonNull().to(factory::setCredentialsProvider); map.from(credentialsRefreshService::getIfUnique).whenNonNull().to(factory::setCredentialsRefreshService); factory.afterPropertiesSet(); diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java index 3699939f27f7..a7e318e93000 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitProperties.java @@ -119,6 +119,11 @@ public class RabbitProperties { * Connection timeout. Set it to zero to wait forever. */ private Duration connectionTimeout; + + /** + * Channel RPC timeout. + */ + private Duration channelRpcTimeout; /** * Cache configuration. @@ -323,6 +328,10 @@ public void setPublisherReturns(boolean publisherReturns) { public Duration getConnectionTimeout() { return this.connectionTimeout; } + + public Duration getChannelRpcTimeout() { + return this.channelRpcTimeout; + } public void setPublisherConfirmType(ConfirmType publisherConfirmType) { this.publisherConfirmType = publisherConfirmType; @@ -335,6 +344,10 @@ public ConfirmType getPublisherConfirmType() { public void setConnectionTimeout(Duration connectionTimeout) { this.connectionTimeout = connectionTimeout; } + + public void setChannelRpcTimeout(Duration channelRpcTimeout) { + this.channelRpcTimeout = channelRpcTimeout; + } public Cache getCache() { return this.cache; diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java index 0ccc5c34d3a2..ccd2e7aabe59 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/amqp/RabbitAutoConfigurationTests.java @@ -140,7 +140,7 @@ void testConnectionFactoryWithOverrides() { .withPropertyValues("spring.rabbitmq.host:remote-server", "spring.rabbitmq.port:9000", "spring.rabbitmq.address-shuffle-mode=random", "spring.rabbitmq.username:alice", "spring.rabbitmq.password:secret", "spring.rabbitmq.virtual_host:/vhost", - "spring.rabbitmq.connection-timeout:123") + "spring.rabbitmq.connection-timeout:123", "spring.rabbitmq.channel-rpc-timeout:140") .run((context) -> { CachingConnectionFactory connectionFactory = context.getBean(CachingConnectionFactory.class); assertThat(connectionFactory.getHost()).isEqualTo("remote-server"); @@ -150,6 +150,7 @@ void testConnectionFactoryWithOverrides() { assertThat(connectionFactory.getVirtualHost()).isEqualTo("/vhost"); com.rabbitmq.client.ConnectionFactory rcf = connectionFactory.getRabbitConnectionFactory(); assertThat(rcf.getConnectionTimeout()).isEqualTo(123); + assertThat(rcf.getChannelRpcTimeout()).isEqualTo(140); assertThat((List
) ReflectionTestUtils.getField(connectionFactory, "addresses")).hasSize(1); }); }