diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index e4964523b..e94490119 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 53b2908e2..8bab82489 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 f1c32897f..fe8909b9e 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 4cf69f401..53813dc4e 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 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
*/
@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 b617bfdf6..605606028 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 okhttp3.Response;
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 io.dapr.it.testcontainers.DaprContainerConstants.IMAGE_TAG;
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 class DaprContainerIT {
@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 class DaprContainerIT {
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());
}