From 36a014039873eabd3b301cedcd67ef852192b9d8 Mon Sep 17 00:00:00 2001 From: salaboy Date: Mon, 3 Mar 2025 18:35:06 +0000 Subject: [PATCH] Upgrading spring boot version to 3.4.3 (#1220) * upgrading spring boot version to 3.4.3 Signed-off-by: salaboy * removing sb 3.2.x Signed-off-by: salaboy * fixing label Signed-off-by: salaboy * using 3.3.9 to validate against sb 3.3.x Signed-off-by: salaboy * found the issue with the version Signed-off-by: salaboy * removing toxic dep from classpath Signed-off-by: salaboy * removing excludes Signed-off-by: salaboy * upgrading otel and logback Signed-off-by: salaboy * waiting for Dapr to be done with init Signed-off-by: salaboy * waiting for placement Signed-off-by: salaboy * using awaitability to wait for placement Signed-off-by: salaboy * waiting for placement, but still flaky Signed-off-by: salaboy * wait for app to be ready Signed-off-by: salaboy * test with 1.14.4 Signed-off-by: salaboy * Update DaprContainerIT.java Signed-off-by: Artur Souza --------- Signed-off-by: salaboy Signed-off-by: Artur Souza Signed-off-by: artur-ciocanu Co-authored-by: Cassie Coyle Co-authored-by: Artur Souza Co-authored-by: artur-ciocanu --- .github/workflows/build.yml | 6 +-- pom.xml | 2 +- sdk-tests/pom.xml | 44 ++++++------------- .../dapr/it/actors/app/TestApplication.java | 4 +- .../it/testcontainers/DaprContainerIT.java | 30 +++++++++++-- 5 files changed, 46 insertions(+), 40 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e4964523b6..e94490119c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,12 +24,12 @@ jobs: fail-fast: false matrix: java: [ 17 ] - spring-boot-version: [ 3.2.6 ] - spring-boot-display-version: [ 3.2.x ] + spring-boot-version: [ 3.4.3 ] + spring-boot-display-version: [ 3.4.x ] experimental: [ false ] include: - java: 17 - spring-boot-version: 3.3.0 + spring-boot-version: 3.3.9 spring-boot-display-version: 3.3.x experimental: false env: diff --git a/pom.xml b/pom.xml index 53b2908e24..8bab824898 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ 5.8.2 2.0 1.20.0 - 3.2.6 + 3.4.3 diff --git a/sdk-tests/pom.xml b/sdk-tests/pom.xml index f1c32897f0..fe8909b9e1 100644 --- a/sdk-tests/pom.xml +++ b/sdk-tests/pom.xml @@ -28,9 +28,9 @@ ${project.basedir}/proto 1.69.0 3.25.5 - 1.39.0 - 3.3.1 - 1.4.12 + 1.41.0 + 3.4.3 + 1.5.16 3.9.1 1.20.0 @@ -49,11 +49,6 @@ - - commons-cli - commons-cli - 1.4 - io.grpc grpc-protobuf @@ -70,14 +65,9 @@ ${grpc.version} - com.google.protobuf - protobuf-java-util - ${protobuf.version} - - - com.github.os72 - protoc-jar-maven-plugin - 3.11.4 + commons-io + commons-io + 2.14.0 io.opentelemetry @@ -178,32 +168,20 @@ org.springframework.data spring-data-keyvalue - - org.springframework.boot - spring-boot-starter-test - test - org.wiremock wiremock-standalone ${wiremock.version} test - - ch.qos.logback - logback-classic - ${logback-classic.version} - test - org.springframework.boot spring-boot-starter-web test - io.projectreactor - reactor-core - 3.6.7 + org.springframework.boot + spring-boot-starter-test test @@ -212,6 +190,12 @@ 3.9 test + + ch.qos.logback + logback-core + ${logback-core.version} + test + org.testcontainers postgresql diff --git a/sdk-tests/src/test/java/io/dapr/it/actors/app/TestApplication.java b/sdk-tests/src/test/java/io/dapr/it/actors/app/TestApplication.java index 4cf69f4015..53813dc4ea 100644 --- a/sdk-tests/src/test/java/io/dapr/it/actors/app/TestApplication.java +++ b/sdk-tests/src/test/java/io/dapr/it/actors/app/TestApplication.java @@ -21,14 +21,12 @@ */ @SpringBootApplication public class TestApplication { - /** * Starts Dapr's callback in a given port. * @param port Port to listen to. */ public static void start(long port) { - SpringApplication app = new SpringApplication(TestApplication.class); - app.run(String.format("--server.port=%d", port)); + SpringApplication.run(TestApplication.class, String.format("--server.port=%d", port)); } } diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprContainerIT.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprContainerIT.java index b617bfdf66..6056060288 100644 --- a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprContainerIT.java +++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprContainerIT.java @@ -27,11 +27,15 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; +import org.testcontainers.containers.wait.strategy.Wait; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; +import static org.testcontainers.shaded.org.awaitility.Awaitility.await; +import org.testcontainers.shaded.org.awaitility.core.ConditionTimeoutException; import java.io.IOException; import java.util.Map; +import java.util.concurrent.TimeUnit; import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; import static com.github.tomakehurst.wiremock.client.WireMock.any; @@ -48,6 +52,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; + @Testcontainers @WireMockTest(httpPort = 8081) @@ -60,6 +66,7 @@ public class DaprContainerIT { private static final String KEY = "my-key"; private static final String PUBSUB_NAME = "pubsub"; private static final String PUBSUB_TOPIC_NAME = "topic"; + private static final String APP_FOUND_MESSAGE_PATTERN = ".*application discovered on port 8081.*"; @Container private static final DaprContainer DAPR_CONTAINER = new DaprContainer(IMAGE_TAG) @@ -129,9 +136,26 @@ public void testStateStore() throws Exception { @Test public void testPlacement() throws Exception { - // Dapr and Placement need some time to connect - Thread.sleep(1000); + Wait.forLogMessage(APP_FOUND_MESSAGE_PATTERN, 1).waitUntilReady(DAPR_CONTAINER); + try { + await().atMost(10, TimeUnit.SECONDS) + .pollDelay(500, TimeUnit.MILLISECONDS) + .pollInterval(500, TimeUnit.MILLISECONDS) + .until(() -> { + String metadata = checkSidecarMetadata(); + if (metadata.contains("placement: connected")) { + return true; + } else { + return false; + } + }); + } catch (ConditionTimeoutException timeoutException) { + fail("The placement server is not connected"); + } + + } + private String checkSidecarMetadata() throws IOException { OkHttpClient okHttpClient = new OkHttpClient.Builder() .build(); Request request = new Request.Builder() @@ -140,7 +164,7 @@ public void testPlacement() throws Exception { try (Response response = okHttpClient.newCall(request).execute()) { if (response.isSuccessful() && response.body() != null) { - assertTrue(response.body().string().contains("placement: connected")); + return response.body().string(); } else { throw new IOException("Unexpected response: " + response.code()); }