From 4e5f16f2bc9f484eea1ec54b5800b0dcfe22c77c Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 27 Sep 2023 19:21:17 +0100 Subject: [PATCH] Polish "Add config prop for Rabbit's max inbound message body size" See gh-37603 --- .../amqp/RabbitConnectionFactoryBeanConfigurer.java | 4 +++- .../boot/autoconfigure/amqp/RabbitProperties.java | 4 ++-- .../autoconfigure/amqp/RabbitAutoConfigurationTests.java | 5 ++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitConnectionFactoryBeanConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitConnectionFactoryBeanConfigurer.java index 5e839306d5a..607ac96462a 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitConnectionFactoryBeanConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitConnectionFactoryBeanConfigurer.java @@ -26,6 +26,7 @@ import org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails.Addre import org.springframework.boot.context.properties.PropertyMapper; import org.springframework.core.io.ResourceLoader; import org.springframework.util.Assert; +import org.springframework.util.unit.DataSize; /** * Configures {@link RabbitConnectionFactoryBean} with sensible defaults. @@ -135,7 +136,8 @@ public class RabbitConnectionFactoryBeanConfigurer { map.from(this.credentialsRefreshService).whenNonNull().to(factory::setCredentialsRefreshService); map.from(this.rabbitProperties.getMaxInboundMessageBodySize()) .whenNonNull() - .to((mimbs) -> factory.setMaxInboundMessageBodySize(Math.toIntExact(mimbs.toBytes()))); + .asInt(DataSize::toBytes) + .to(factory::setMaxInboundMessageBodySize); } } 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 bd925680809..dd9aae0800f 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 @@ -132,9 +132,9 @@ public class RabbitProperties { private Duration channelRpcTimeout = Duration.ofMinutes(10); /** - * Maximum body size of inbound (received) messages in bytes. + * Maximum size of the body of inbound (received) messages. */ - private DataSize maxInboundMessageBodySize; + private DataSize maxInboundMessageBodySize = DataSize.ofMegabytes(64); /** * Cache configuration. 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 a66472cf9d9..c6c32c7daa9 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 @@ -150,9 +150,8 @@ class RabbitAutoConfigurationTests { com.rabbitmq.client.ConnectionFactory rabbitConnectionFactory = getTargetConnectionFactory(context); assertThat(rabbitConnectionFactory.getUsername()).isEqualTo(properties.getUsername()); assertThat(rabbitConnectionFactory.getPassword()).isEqualTo(properties.getPassword()); - com.rabbitmq.client.ConnectionFactory defaultCf = new com.rabbitmq.client.ConnectionFactory(); - assertThat(rabbitConnectionFactory).hasFieldOrPropertyWithValue("maxInboundMessageBodySize", - ReflectionTestUtils.getField(defaultCf, "maxInboundMessageBodySize")); + assertThat(rabbitConnectionFactory).extracting("maxInboundMessageBodySize") + .isEqualTo((int) properties.getMaxInboundMessageBodySize().toBytes()); }); }