From fe688cec1fa6fff53ce472793dfc4a6abec85c16 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Fri, 25 Oct 2024 13:02:04 +0200 Subject: [PATCH] GH-907 - Upgrade to Spring Boot 3.4 snapshots. Tweak test containers setup for dynamic properties to adapt to Boot 3.4's new behavior [0]. [0] https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.4.0-RC1-Release-Notes#dynamic-properties-with-testcontainers --- pom.xml | 2 +- .../SnsEventPublicationIntegrationTests.java | 21 +++++++++++-------- .../SqsEventPublicationIntegrationTests.java | 21 +++++++++++-------- spring-modulith-examples/pom.xml | 2 +- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 35af1d8d..edd3d1cf 100644 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,7 @@ 2023.1.7 UTF-8 UTF-8 - 3.4.0-M3 + 3.4.0-SNAPSHOT 6.2.0-RC3 3.1.1 1.17.6 diff --git a/spring-modulith-events/spring-modulith-events-aws-sns/src/test/java/org/springframework/modulith/events/aws/sns/SnsEventPublicationIntegrationTests.java b/spring-modulith-events/spring-modulith-events-aws-sns/src/test/java/org/springframework/modulith/events/aws/sns/SnsEventPublicationIntegrationTests.java index 28ee75af..0fc9f484 100644 --- a/spring-modulith-events/spring-modulith-events-aws-sns/src/test/java/org/springframework/modulith/events/aws/sns/SnsEventPublicationIntegrationTests.java +++ b/spring-modulith-events/spring-modulith-events-aws-sns/src/test/java/org/springframework/modulith/events/aws/sns/SnsEventPublicationIntegrationTests.java @@ -28,14 +28,13 @@ import java.util.Map; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.annotation.Bean; import org.springframework.modulith.events.ApplicationModuleListener; import org.springframework.modulith.events.Externalized; -import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertyRegistrar; import org.springframework.transaction.annotation.Transactional; import org.testcontainers.containers.localstack.LocalStackContainer; import org.testcontainers.utility.DockerImageName; @@ -57,16 +56,20 @@ class SnsEventPublicationIntegrationTests { static class TestConfiguration { @Bean - LocalStackContainer localStackContainer(@Qualifier("dynamicPropertyRegistry") DynamicPropertyRegistry registry) { + LocalStackContainer localStackContainer() { + return new LocalStackContainer(DockerImageName.parse("localstack/localstack:latest")); + } - var localstack = new LocalStackContainer(DockerImageName.parse("localstack/localstack:latest")); + @Bean + DynamicPropertyRegistrar localstackDynamicProperties(LocalStackContainer localstack) { - registry.add("spring.cloud.aws.endpoint", localstack::getEndpoint); - registry.add("spring.cloud.aws.credentials.access-key", localstack::getAccessKey); - registry.add("spring.cloud.aws.credentials.secret-key", localstack::getSecretKey); - registry.add("spring.cloud.aws.region.static", localstack::getRegion); + return registry -> { - return localstack; + registry.add("spring.cloud.aws.endpoint", localstack::getEndpoint); + registry.add("spring.cloud.aws.credentials.access-key", localstack::getAccessKey); + registry.add("spring.cloud.aws.credentials.secret-key", localstack::getSecretKey); + registry.add("spring.cloud.aws.region.static", localstack::getRegion); + }; } @Bean diff --git a/spring-modulith-events/spring-modulith-events-aws-sqs/src/test/java/org/springframework/modulith/events/aws/sqs/SqsEventPublicationIntegrationTests.java b/spring-modulith-events/spring-modulith-events-aws-sqs/src/test/java/org/springframework/modulith/events/aws/sqs/SqsEventPublicationIntegrationTests.java index ba76a591..c2920124 100644 --- a/spring-modulith-events/spring-modulith-events-aws-sqs/src/test/java/org/springframework/modulith/events/aws/sqs/SqsEventPublicationIntegrationTests.java +++ b/spring-modulith-events/spring-modulith-events-aws-sqs/src/test/java/org/springframework/modulith/events/aws/sqs/SqsEventPublicationIntegrationTests.java @@ -27,14 +27,13 @@ import java.util.Map; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.annotation.Bean; import org.springframework.modulith.events.ApplicationModuleListener; import org.springframework.modulith.events.Externalized; -import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertyRegistrar; import org.springframework.transaction.annotation.Transactional; import org.testcontainers.containers.localstack.LocalStackContainer; import org.testcontainers.utility.DockerImageName; @@ -56,16 +55,20 @@ class SqsEventPublicationIntegrationTests { static class TestConfiguration { @Bean - LocalStackContainer localStackContainer(@Qualifier("dynamicPropertyRegistry") DynamicPropertyRegistry registry) { + LocalStackContainer localStackContainer() { + return new LocalStackContainer(DockerImageName.parse("localstack/localstack:latest")); + } - var localstack = new LocalStackContainer(DockerImageName.parse("localstack/localstack:latest")); + @Bean + DynamicPropertyRegistrar localStackDynamicProperties(LocalStackContainer localstack) { - registry.add("spring.cloud.aws.endpoint", localstack::getEndpoint); - registry.add("spring.cloud.aws.credentials.access-key", localstack::getAccessKey); - registry.add("spring.cloud.aws.credentials.secret-key", localstack::getSecretKey); - registry.add("spring.cloud.aws.region.static", localstack::getRegion); + return registry -> { - return localstack; + registry.add("spring.cloud.aws.endpoint", localstack::getEndpoint); + registry.add("spring.cloud.aws.credentials.access-key", localstack::getAccessKey); + registry.add("spring.cloud.aws.credentials.secret-key", localstack::getSecretKey); + registry.add("spring.cloud.aws.region.static", localstack::getRegion); + }; } @Bean diff --git a/spring-modulith-examples/pom.xml b/spring-modulith-examples/pom.xml index 46f134cc..197f35a2 100644 --- a/spring-modulith-examples/pom.xml +++ b/spring-modulith-examples/pom.xml @@ -4,7 +4,7 @@ org.springframework.boot spring-boot-starter-parent - 3.4.0-M3 + 3.4.0-SNAPSHOT