diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1a6c0a00..74c174ac 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,13 +19,13 @@ jacoco = "0.8.9" json-path = "2.9.0" junit = "6.0.0" hamcrest = "3.0" -mockito = "5.17.0" +mockito = "5.20.0" spring-dep-mgmt = "1.1.7" -spring-boot = "4.0.0-M3" -spring-boot-for-docs = "4.0.0-M3" +spring-boot = "4.0.0-SNAPSHOT" +spring-boot-for-docs = "4.0.0-SNAPSHOT" spring-cloud-stream = "5.0.0-SNAPSHOT" system-lambda = "1.2.1" -testcontainers = "1.21.3" +testcontainers = "2.0.1" # plugins antora = "1.0.0" antora-yml = "0.0.1" diff --git a/integration-tests/integration-tests.gradle b/integration-tests/integration-tests.gradle index b32f1b46..7d2fecf9 100644 --- a/integration-tests/integration-tests.gradle +++ b/integration-tests/integration-tests.gradle @@ -16,9 +16,9 @@ dependencies { intTestImplementation project(':spring-pulsar') intTestImplementation project(':spring-pulsar-test') intTestImplementation 'org.awaitility:awaitility' - intTestImplementation 'org.testcontainers:junit-jupiter' - intTestImplementation 'org.testcontainers:pulsar' - intTestImplementation 'org.testcontainers:rabbitmq' + intTestImplementation 'org.testcontainers:testcontainers-junit-jupiter' + intTestImplementation 'org.testcontainers:testcontainers-pulsar' + intTestImplementation 'org.testcontainers:testcontainers-rabbitmq' intTestImplementation libs.spring.boot.starter.test intTestImplementation libs.spring.boot.starter.amqp // Exclude spring-pulsar from boot in order to use current changes in project diff --git a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/app/PulsarContainerWithSsl.java b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/app/PulsarContainerWithSsl.java index 9f258507..ac64eb9c 100644 --- a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/app/PulsarContainerWithSsl.java +++ b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/app/PulsarContainerWithSsl.java @@ -18,7 +18,7 @@ import java.time.Duration; -import org.testcontainers.containers.PulsarContainer; +import org.testcontainers.pulsar.PulsarContainer; import org.testcontainers.utility.MountableFile; import org.springframework.pulsar.test.support.PulsarTestContainerSupport; diff --git a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/app/SamplePulsarApplicationTests.java b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/app/SamplePulsarApplicationTests.java index ac1f929c..34abaf8a 100644 --- a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/app/SamplePulsarApplicationTests.java +++ b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/app/SamplePulsarApplicationTests.java @@ -18,9 +18,9 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.PulsarContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.pulsar.PulsarContainer; import org.springframework.boot.test.system.OutputCaptureExtension; import org.springframework.boot.testcontainers.service.connection.ServiceConnection; diff --git a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/config/DefaultTenantAndNamespaceTests.java b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/config/DefaultTenantAndNamespaceTests.java index 57dca5f4..dfae852b 100644 --- a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/config/DefaultTenantAndNamespaceTests.java +++ b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/config/DefaultTenantAndNamespaceTests.java @@ -27,9 +27,9 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.PulsarContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.pulsar.PulsarContainer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; diff --git a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/function/PulsarFunctionAdministrationIntegrationTests.java b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/function/PulsarFunctionAdministrationIntegrationTests.java index 2c930b35..4e9850cc 100644 --- a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/function/PulsarFunctionAdministrationIntegrationTests.java +++ b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/function/PulsarFunctionAdministrationIntegrationTests.java @@ -46,9 +46,9 @@ import org.junit.jupiter.api.extension.TestWatcher; import org.testcontainers.containers.BindMode; import org.testcontainers.containers.Network; -import org.testcontainers.containers.PulsarContainer; import org.testcontainers.containers.RabbitMQContainer; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.pulsar.PulsarContainer; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.boot.SpringApplication; diff --git a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/logging/PulsarTemplateLambdaWarnLoggerTests.java b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/logging/PulsarTemplateLambdaWarnLoggerTests.java index ccbbaa4b..404a451c 100644 --- a/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/logging/PulsarTemplateLambdaWarnLoggerTests.java +++ b/integration-tests/src/intTest/java/org/springframework/pulsar/inttest/logging/PulsarTemplateLambdaWarnLoggerTests.java @@ -23,9 +23,9 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import org.testcontainers.containers.PulsarContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.pulsar.PulsarContainer; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringBootConfiguration; diff --git a/spring-pulsar-sample-apps/sample-failover-custom-router/build.gradle b/spring-pulsar-sample-apps/sample-failover-custom-router/build.gradle index 315646bf..9f1c1742 100644 --- a/spring-pulsar-sample-apps/sample-failover-custom-router/build.gradle +++ b/spring-pulsar-sample-apps/sample-failover-custom-router/build.gradle @@ -21,6 +21,8 @@ ext['pulsar.version'] = "${pulsarVersion}" dependencies { implementation 'org.springframework.boot:spring-boot-starter-pulsar' implementation 'org.springframework.boot:spring-boot-starter-actuator' + implementation 'org.springframework.boot:spring-boot-jackson2' + implementation 'org.springframework.boot:spring-boot-http-converter' implementation 'org.springframework.boot:spring-boot-zipkin' implementation 'io.micrometer:micrometer-tracing-bridge-brave' implementation 'io.zipkin.reporter2:zipkin-reporter-brave' @@ -30,8 +32,8 @@ dependencies { testRuntimeOnly 'ch.qos.logback:logback-classic' testImplementation "org.springframework.boot:spring-boot-starter-test" testImplementation "org.springframework.boot:spring-boot-testcontainers" - testImplementation 'org.testcontainers:junit-jupiter' - testImplementation 'org.testcontainers:pulsar' + testImplementation 'org.testcontainers:testcontainers-junit-jupiter' + testImplementation 'org.testcontainers:testcontainers-pulsar' } test { diff --git a/spring-pulsar-sample-apps/sample-imperative-produce-consume/build.gradle b/spring-pulsar-sample-apps/sample-imperative-produce-consume/build.gradle index 9b14d2f7..94a9a1ad 100644 --- a/spring-pulsar-sample-apps/sample-imperative-produce-consume/build.gradle +++ b/spring-pulsar-sample-apps/sample-imperative-produce-consume/build.gradle @@ -26,8 +26,8 @@ dependencies { testRuntimeOnly 'ch.qos.logback:logback-classic' testImplementation "org.springframework.boot:spring-boot-starter-test" testImplementation "org.springframework.boot:spring-boot-testcontainers" - testImplementation 'org.testcontainers:junit-jupiter' - testImplementation 'org.testcontainers:pulsar' + testImplementation 'org.testcontainers:testcontainers-junit-jupiter' + testImplementation 'org.testcontainers:testcontainers-pulsar' } test { diff --git a/spring-pulsar-sample-apps/sample-pulsar-binder/build.gradle b/spring-pulsar-sample-apps/sample-pulsar-binder/build.gradle index 7c07fc4c..a47cdee8 100644 --- a/spring-pulsar-sample-apps/sample-pulsar-binder/build.gradle +++ b/spring-pulsar-sample-apps/sample-pulsar-binder/build.gradle @@ -28,8 +28,8 @@ dependencies { testRuntimeOnly 'ch.qos.logback:logback-classic' testImplementation "org.springframework.boot:spring-boot-starter-test" testImplementation "org.springframework.boot:spring-boot-testcontainers" - testImplementation 'org.testcontainers:junit-jupiter' - testImplementation 'org.testcontainers:pulsar' + testImplementation 'org.testcontainers:testcontainers-junit-jupiter' + testImplementation 'org.testcontainers:testcontainers-pulsar' } diff --git a/spring-pulsar-sample-apps/sample-pulsar-reader/build.gradle b/spring-pulsar-sample-apps/sample-pulsar-reader/build.gradle index d4aa7d23..9be55c82 100644 --- a/spring-pulsar-sample-apps/sample-pulsar-reader/build.gradle +++ b/spring-pulsar-sample-apps/sample-pulsar-reader/build.gradle @@ -26,8 +26,8 @@ dependencies { testRuntimeOnly 'ch.qos.logback:logback-classic' testImplementation "org.springframework.boot:spring-boot-starter-test" testImplementation "org.springframework.boot:spring-boot-testcontainers" - testImplementation 'org.testcontainers:junit-jupiter' - testImplementation 'org.testcontainers:pulsar' + testImplementation 'org.testcontainers:testcontainers-junit-jupiter' + testImplementation 'org.testcontainers:testcontainers-pulsar' } test { diff --git a/spring-pulsar-test/spring-pulsar-test.gradle b/spring-pulsar-test/spring-pulsar-test.gradle index d3c989da..4d89eeed 100644 --- a/spring-pulsar-test/spring-pulsar-test.gradle +++ b/spring-pulsar-test/spring-pulsar-test.gradle @@ -6,15 +6,8 @@ description = 'Spring Pulsar Test Utilities Module' dependencies { implementation 'org.junit.jupiter:junit-jupiter-api' - // Testcontainers brings in commons-compress 1.24.0 which has 2 CVEs. - // Exclude and override version to 1.26.0 until TC updates to latest - // commons-compress. - implementation('org.testcontainers:pulsar') { - exclude group: 'org.apache.commons', module: 'commons-compress' - } - implementation('org.testcontainers:junit-jupiter') { - exclude group: 'org.apache.commons', module: 'commons-compress' - } + implementation('org.testcontainers:testcontainers-pulsar') + implementation('org.testcontainers:testcontainers-junit-jupiter') implementation libs.commons.compress implementation project(':spring-pulsar') testImplementation 'org.assertj:assertj-core' diff --git a/spring-pulsar-test/src/main/java/org/springframework/pulsar/test/support/PulsarTestContainerSupport.java b/spring-pulsar-test/src/main/java/org/springframework/pulsar/test/support/PulsarTestContainerSupport.java index e8fcdf01..eacc9ee5 100644 --- a/spring-pulsar-test/src/main/java/org/springframework/pulsar/test/support/PulsarTestContainerSupport.java +++ b/spring-pulsar-test/src/main/java/org/springframework/pulsar/test/support/PulsarTestContainerSupport.java @@ -17,8 +17,8 @@ package org.springframework.pulsar.test.support; import org.junit.jupiter.api.BeforeAll; -import org.testcontainers.containers.PulsarContainer; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.pulsar.PulsarContainer; import org.testcontainers.utility.DockerImageName; /** diff --git a/spring-pulsar/spring-pulsar.gradle b/spring-pulsar/spring-pulsar.gradle index c35c3a55..da4f090b 100644 --- a/spring-pulsar/spring-pulsar.gradle +++ b/spring-pulsar/spring-pulsar.gradle @@ -39,8 +39,8 @@ dependencies { testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.mockito:mockito-junit-jupiter' testImplementation 'org.springframework:spring-test' - testImplementation 'org.testcontainers:junit-jupiter' - testImplementation 'org.testcontainers:pulsar' + testImplementation 'org.testcontainers:testcontainers-junit-jupiter' + testImplementation 'org.testcontainers:testcontainers-pulsar' // Output capture used by PulsarFunctionAdministrationTests testImplementation libs.system.lambda @@ -48,7 +48,7 @@ dependencies { // Used by PulsarMixedTransactionTests (Pulsar + DB) testImplementation 'org.springframework:spring-jdbc' - testImplementation "org.testcontainers:mysql" + testImplementation "org.testcontainers:testcontainers-mysql" testImplementation 'mysql:mysql-connector-java:8.0.33' // Used by UserRecordDe/serializer in test fixtures diff --git a/spring-pulsar/src/main/java/org/springframework/pulsar/listener/adapter/AbstractPulsarMessageToSpringMessageAdapter.java b/spring-pulsar/src/main/java/org/springframework/pulsar/listener/adapter/AbstractPulsarMessageToSpringMessageAdapter.java index f2d380c1..082f36bd 100644 --- a/spring-pulsar/src/main/java/org/springframework/pulsar/listener/adapter/AbstractPulsarMessageToSpringMessageAdapter.java +++ b/spring-pulsar/src/main/java/org/springframework/pulsar/listener/adapter/AbstractPulsarMessageToSpringMessageAdapter.java @@ -28,11 +28,11 @@ import org.apache.pulsar.client.api.Reader; import org.jspecify.annotations.Nullable; -import org.springframework.context.expression.MapAccessor; import org.springframework.core.MethodParameter; import org.springframework.core.log.LogAccessor; import org.springframework.expression.BeanResolver; import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.MapAccessor; import org.springframework.expression.spel.support.StandardEvaluationContext; import org.springframework.expression.spel.support.StandardTypeConverter; import org.springframework.messaging.converter.MessageConversionException; @@ -132,7 +132,6 @@ protected boolean isPulsarMessageList() { return this.isPulsarMessageList; } - @SuppressWarnings("removal") public void setBeanResolver(BeanResolver beanResolver) { this.evaluationContext.setBeanResolver(beanResolver); this.evaluationContext.setTypeConverter(new StandardTypeConverter()); diff --git a/spring-pulsar/src/test/java/org/springframework/pulsar/core/PulsarTemplateLocalTransactionTests.java b/spring-pulsar/src/test/java/org/springframework/pulsar/core/PulsarTemplateLocalTransactionTests.java index c98017d0..2c7d6361 100644 --- a/spring-pulsar/src/test/java/org/springframework/pulsar/core/PulsarTemplateLocalTransactionTests.java +++ b/spring-pulsar/src/test/java/org/springframework/pulsar/core/PulsarTemplateLocalTransactionTests.java @@ -40,8 +40,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; -import org.testcontainers.containers.PulsarContainer; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.pulsar.PulsarContainer; import org.springframework.pulsar.PulsarException; import org.springframework.pulsar.test.support.PulsarConsumerTestUtil; diff --git a/spring-pulsar/src/test/java/org/springframework/pulsar/listener/DefaultPulsarMessageListenerContainerTxnTests.java b/spring-pulsar/src/test/java/org/springframework/pulsar/listener/DefaultPulsarMessageListenerContainerTxnTests.java index 41544f53..2326e533 100644 --- a/spring-pulsar/src/test/java/org/springframework/pulsar/listener/DefaultPulsarMessageListenerContainerTxnTests.java +++ b/spring-pulsar/src/test/java/org/springframework/pulsar/listener/DefaultPulsarMessageListenerContainerTxnTests.java @@ -46,8 +46,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.testcontainers.containers.PulsarContainer; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.pulsar.PulsarContainer; import org.springframework.pulsar.core.ConsumerBuilderCustomizer; import org.springframework.pulsar.core.DefaultPulsarConsumerFactory; diff --git a/spring-pulsar/src/test/java/org/springframework/pulsar/transaction/PulsarTxnTestsBase.java b/spring-pulsar/src/test/java/org/springframework/pulsar/transaction/PulsarTxnTestsBase.java index cd66461b..6ee338ee 100644 --- a/spring-pulsar/src/test/java/org/springframework/pulsar/transaction/PulsarTxnTestsBase.java +++ b/spring-pulsar/src/test/java/org/springframework/pulsar/transaction/PulsarTxnTestsBase.java @@ -29,8 +29,8 @@ import org.assertj.core.api.ObjectAssert; import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.BeforeAll; -import org.testcontainers.containers.PulsarContainer; import org.testcontainers.junit.jupiter.Testcontainers; +import org.testcontainers.pulsar.PulsarContainer; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired;