diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 021e6f5f19..ba2f0c2a39 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -39,7 +39,7 @@ jobs:
GOPROXY: https://proxy.golang.org
JDK_VER: ${{ matrix.java }}
DAPR_CLI_VER: 1.15.0
- DAPR_RUNTIME_VER: 1.15.3
+ DAPR_RUNTIME_VER: 1.15.4
DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/v1.15.0/install/install.sh
DAPR_CLI_REF:
DAPR_REF:
diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
index 1559f5aef4..7f09a2325a 100644
--- a/.github/workflows/validate.yml
+++ b/.github/workflows/validate.yml
@@ -38,7 +38,7 @@ jobs:
GOPROXY: https://proxy.golang.org
JDK_VER: ${{ matrix.java }}
DAPR_CLI_VER: 1.15.0
- DAPR_RUNTIME_VER: 1.15.3
+ DAPR_RUNTIME_VER: 1.15.4
DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/v1.15.0/install/install.sh
DAPR_CLI_REF:
DAPR_REF:
diff --git a/daprdocs/content/en/java-sdk-docs/spring-boot/_index.md b/daprdocs/content/en/java-sdk-docs/spring-boot/_index.md
index e515e2b39c..4a53e21b2b 100644
--- a/daprdocs/content/en/java-sdk-docs/spring-boot/_index.md
+++ b/daprdocs/content/en/java-sdk-docs/spring-boot/_index.md
@@ -80,7 +80,7 @@ public class DaprTestContainersConfig {
@ServiceConnection
public DaprContainer daprContainer(Network daprNetwork, PostgreSQLContainer> postgreSQLContainer){
- return new DaprContainer("daprio/daprd:1.14.1")
+ return new DaprContainer("daprio/daprd:1.15.4")
.withAppName("producer-app")
.withNetwork(daprNetwork)
.withComponent(new Component("kvstore", "state.postgresql", "v1", STATE_STORE_PROPERTIES))
@@ -235,7 +235,7 @@ Finally, because Dapr PubSub requires a bidirectional connection between your ap
@ServiceConnection
public DaprContainer daprContainer(Network daprNetwork, PostgreSQLContainer> postgreSQLContainer, RabbitMQContainer rabbitMQContainer){
- return new DaprContainer("daprio/daprd:1.14.1")
+ return new DaprContainer("daprio/daprd:1.15.4")
.withAppName("producer-app")
.withNetwork(daprNetwork)
.withComponent(new Component("kvstore", "state.postgresql", "v1", STATE_STORE_PROPERTIES))
diff --git a/pom.xml b/pom.xml
index 2be2a6ab2b..51f5070027 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,7 +17,7 @@
1.69.0
3.25.5
protoc
- https://raw.githubusercontent.com/dapr/dapr/v1.15.3/dapr/proto
+ https://raw.githubusercontent.com/dapr/dapr/v1.15.4/dapr/proto
1.15.0-SNAPSHOT
0.15.0-SNAPSHOT
1.7.1
diff --git a/sdk-springboot/src/test/java/io/dapr/springboot/MockController.java b/sdk-springboot/src/test/java/io/dapr/springboot/MockController.java
index e4251e120d..943431d760 100644
--- a/sdk-springboot/src/test/java/io/dapr/springboot/MockController.java
+++ b/sdk-springboot/src/test/java/io/dapr/springboot/MockController.java
@@ -13,7 +13,9 @@
package io.dapr.springboot;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
@RequestMapping(value = {"v1", "v2"})
public class MockController {
diff --git a/sdk-tests/src/test/java/io/dapr/it/resiliency/SdkResiliencyIT.java b/sdk-tests/src/test/java/io/dapr/it/resiliency/SdkResiliencyIT.java
index bb194bf1f2..b0591e4eec 100644
--- a/sdk-tests/src/test/java/io/dapr/it/resiliency/SdkResiliencyIT.java
+++ b/sdk-tests/src/test/java/io/dapr/it/resiliency/SdkResiliencyIT.java
@@ -58,8 +58,7 @@
import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
import static com.github.tomakehurst.wiremock.client.WireMock.verify;
import static io.dapr.it.resiliency.SdkResiliencyIT.WIREMOCK_PORT;
-import static io.dapr.it.testcontainers.ContainerConstants.DAPR_IMAGE_TAG;
-import static io.dapr.it.testcontainers.ContainerConstants.TOXIPROXY_IMAGE_TAG;
+import static io.dapr.it.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -74,7 +73,7 @@ public class SdkResiliencyIT {
private static final int INFINITE_RETRY = -1;
@Container
- private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_IMAGE_TAG)
+ private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(WIREMOCK_PORT)
.withDaprLogLevel(DaprLogLevel.DEBUG)
@@ -85,7 +84,7 @@ public class SdkResiliencyIT {
.withNetwork(NETWORK);
@Container
- private static final ToxiproxyContainer TOXIPROXY = new ToxiproxyContainer(TOXIPROXY_IMAGE_TAG)
+ private static final ToxiproxyContainer TOXIPROXY = new ToxiproxyContainer("ghcr.io/shopify/toxiproxy:2.5.0")
.withNetwork(NETWORK);
private static Proxy proxy;
diff --git a/sdk-tests/src/test/java/io/dapr/it/spring/data/DaprKeyValueRepositoryIT.java b/sdk-tests/src/test/java/io/dapr/it/spring/data/DaprKeyValueRepositoryIT.java
index 351e405cd9..0d541fff99 100644
--- a/sdk-tests/src/test/java/io/dapr/it/spring/data/DaprKeyValueRepositoryIT.java
+++ b/sdk-tests/src/test/java/io/dapr/it/spring/data/DaprKeyValueRepositoryIT.java
@@ -35,8 +35,10 @@
import static io.dapr.it.spring.data.DaprSpringDataConstants.BINDING_NAME;
import static io.dapr.it.spring.data.DaprSpringDataConstants.STATE_STORE_NAME;
-import static io.dapr.it.testcontainers.ContainerConstants.DAPR_IMAGE_TAG;
-import static org.junit.jupiter.api.Assertions.*;
+import static io.dapr.it.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* Integration tests for {@link DaprKeyValueRepositoryIT}.
@@ -65,7 +67,7 @@ public class DaprKeyValueRepositoryIT {
@Container
@ServiceConnection
- private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_IMAGE_TAG)
+ private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("postgresql-repository-dapr-app")
.withNetwork(DAPR_NETWORK)
.withComponent(new Component(STATE_STORE_NAME, "state.postgresql", "v1", STATE_STORE_PROPERTIES))
diff --git a/sdk-tests/src/test/java/io/dapr/it/spring/data/MySQLDaprKeyValueTemplateIT.java b/sdk-tests/src/test/java/io/dapr/it/spring/data/MySQLDaprKeyValueTemplateIT.java
index bdcbc61aed..f07ab1002c 100644
--- a/sdk-tests/src/test/java/io/dapr/it/spring/data/MySQLDaprKeyValueTemplateIT.java
+++ b/sdk-tests/src/test/java/io/dapr/it/spring/data/MySQLDaprKeyValueTemplateIT.java
@@ -44,7 +44,7 @@
import static io.dapr.it.spring.data.DaprSpringDataConstants.STATE_STORE_NAME;
import static io.dapr.it.spring.data.DaprSpringDataConstants.BINDING_NAME;
-import static io.dapr.it.testcontainers.ContainerConstants.DAPR_IMAGE_TAG;
+import static io.dapr.it.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -80,7 +80,7 @@ public class MySQLDaprKeyValueTemplateIT {
@Container
@ServiceConnection
- private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_IMAGE_TAG)
+ private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("mysql-dapr-app")
.withNetwork(DAPR_NETWORK)
.withComponent(new Component(STATE_STORE_NAME, "state.mysql", "v1", STATE_STORE_PROPERTIES))
diff --git a/sdk-tests/src/test/java/io/dapr/it/spring/data/PostgreSQLDaprKeyValueTemplateIT.java b/sdk-tests/src/test/java/io/dapr/it/spring/data/PostgreSQLDaprKeyValueTemplateIT.java
index 56c8f9f88c..956343985c 100644
--- a/sdk-tests/src/test/java/io/dapr/it/spring/data/PostgreSQLDaprKeyValueTemplateIT.java
+++ b/sdk-tests/src/test/java/io/dapr/it/spring/data/PostgreSQLDaprKeyValueTemplateIT.java
@@ -32,11 +32,15 @@
import org.testcontainers.junit.jupiter.Container;
import org.testcontainers.junit.jupiter.Testcontainers;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
import static io.dapr.it.spring.data.DaprSpringDataConstants.BINDING_NAME;
import static io.dapr.it.spring.data.DaprSpringDataConstants.STATE_STORE_NAME;
-import static io.dapr.it.testcontainers.ContainerConstants.DAPR_IMAGE_TAG;
+import static io.dapr.it.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -67,7 +71,7 @@ public class PostgreSQLDaprKeyValueTemplateIT {
@Container
@ServiceConnection
- private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_IMAGE_TAG)
+ private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("postgresql-dapr-app")
.withNetwork(DAPR_NETWORK)
.withComponent(new Component(STATE_STORE_NAME, "state.postgresql", "v1", STATE_STORE_PROPERTIES))
diff --git a/sdk-tests/src/test/java/io/dapr/it/spring/messaging/DaprSpringMessagingIT.java b/sdk-tests/src/test/java/io/dapr/it/spring/messaging/DaprSpringMessagingIT.java
index a7ae667ddf..ba0366d407 100644
--- a/sdk-tests/src/test/java/io/dapr/it/spring/messaging/DaprSpringMessagingIT.java
+++ b/sdk-tests/src/test/java/io/dapr/it/spring/messaging/DaprSpringMessagingIT.java
@@ -37,7 +37,7 @@
import java.util.Collections;
import java.util.List;
-import static io.dapr.it.testcontainers.ContainerConstants.DAPR_IMAGE_TAG;
+import static io.dapr.it.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest(
@@ -61,7 +61,7 @@ public class DaprSpringMessagingIT {
@Container
@ServiceConnection
- private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_IMAGE_TAG)
+ private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("messaging-dapr-app")
.withNetwork(DAPR_NETWORK)
.withComponent(new Component("pubsub", "pubsub.in-memory", "v1", Collections.emptyMap()))
diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/ContainerConstants.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/ContainerConstants.java
deleted file mode 100644
index 76cadb815d..0000000000
--- a/sdk-tests/src/test/java/io/dapr/it/testcontainers/ContainerConstants.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package io.dapr.it.testcontainers;
-
-public interface ContainerConstants {
- String TOXIPROXY_IMAGE_TAG = "ghcr.io/shopify/toxiproxy:2.5.0";
- String DAPR_RUNTIME_VERSION = "1.15.3";
- String DAPR_IMAGE_TAG = "daprio/daprd:" + DAPR_RUNTIME_VERSION;
- String DAPR_PLACEMENT_IMAGE_TAG = "daprio/placement:" + DAPR_RUNTIME_VERSION;
- String DAPR_SCHEDULER_IMAGE_TAG = "daprio/scheduler:" + DAPR_RUNTIME_VERSION;
-}
diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprActorsIT.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprActorsIT.java
index 69eefd9624..8878359391 100644
--- a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprActorsIT.java
+++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprActorsIT.java
@@ -37,6 +37,7 @@
import java.util.Random;
import java.util.UUID;
+import static io.dapr.it.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.junit.jupiter.api.Assertions.assertEquals;
@SpringBootTest(
@@ -53,10 +54,10 @@ public class DaprActorsIT {
private static final Random RANDOM = new Random();
private static final int PORT = RANDOM.nextInt(1000) + 8000;
- private static final String ACTORS_MESSAGE_PATTERN = ".*Actor API level in the cluster has been updated to 10.*";
+ private static final String ACTORS_MESSAGE_PATTERN = ".*Actor runtime started.*";
@Container
- private static final DaprContainer DAPR_CONTAINER = new DaprContainer("daprio/daprd:1.14.4")
+ private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("actor-dapr-app")
.withNetwork(DAPR_NETWORK)
.withComponent(new Component("kvstore", "state.in-memory", "v1",
@@ -88,7 +89,8 @@ static void daprProperties(DynamicPropertyRegistry registry) {
public void setUp(){
org.testcontainers.Testcontainers.exposeHostPorts(PORT);
daprActorRuntime.registerActor(TestActorImpl.class);
- // Ensure the subscriptions are registered
+
+ // Wait for actor runtime to start.
Wait.forLogMessage(ACTORS_MESSAGE_PATTERN, 1).waitUntilReady(DAPR_CONTAINER);
}
diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprContainerConstants.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprContainerConstants.java
new file mode 100644
index 0000000000..9e47ebdbb5
--- /dev/null
+++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprContainerConstants.java
@@ -0,0 +1,8 @@
+package io.dapr.it.testcontainers;
+
+public interface DaprContainerConstants {
+ String DAPR_RUNTIME_VERSION = "1.15.4";
+ String DAPR_RUNTIME_IMAGE_TAG = "daprio/daprd:" + DAPR_RUNTIME_VERSION;
+ String DAPR_PLACEMENT_IMAGE_TAG = "daprio/placement:" + DAPR_RUNTIME_VERSION;
+ String DAPR_SCHEDULER_IMAGE_TAG = "daprio/scheduler:" + DAPR_RUNTIME_VERSION;
+}
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 bd94ddd114..55096d5998 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
@@ -18,7 +18,6 @@
import io.dapr.client.DaprClientBuilder;
import io.dapr.client.domain.Metadata;
import io.dapr.client.domain.State;
-
import io.dapr.config.Properties;
import io.dapr.testcontainers.DaprContainer;
import org.junit.jupiter.api.BeforeEach;
@@ -27,7 +26,6 @@
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;
@@ -49,10 +47,11 @@
import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
import static com.github.tomakehurst.wiremock.client.WireMock.verify;
-import static io.dapr.it.testcontainers.ContainerConstants.DAPR_IMAGE_TAG;
+import static io.dapr.it.testcontainers.DaprContainerConstants.DAPR_RUNTIME_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.fail;
+import static org.testcontainers.shaded.org.awaitility.Awaitility.await;
@Testcontainers
@@ -69,7 +68,7 @@ public class DaprContainerIT {
private static final String APP_FOUND_MESSAGE_PATTERN = ".*application discovered on port 8081.*";
@Container
- private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_IMAGE_TAG)
+ private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withAppHealthCheckPath("/actuator/health")
diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprJobsIT.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprJobsIT.java
index 78e2ec7ecf..b9bf55d718 100644
--- a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprJobsIT.java
+++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprJobsIT.java
@@ -34,7 +34,6 @@
import org.testcontainers.junit.jupiter.Testcontainers;
import java.time.Instant;
-import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
@@ -58,7 +57,7 @@ public class DaprJobsIT {
private static final int PORT = RANDOM.nextInt(1000) + 8000;
@Container
- private static final DaprContainer DAPR_CONTAINER = new DaprContainer(ContainerConstants.DAPR_IMAGE_TAG)
+ private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG)
.withAppName("jobs-dapr-app")
.withNetwork(DAPR_NETWORK)
.withDaprLogLevel(DaprLogLevel.DEBUG)
diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprPlacementContainerIT.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprPlacementContainerIT.java
index d7069a3f14..592a7afb0f 100644
--- a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprPlacementContainerIT.java
+++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprPlacementContainerIT.java
@@ -27,7 +27,7 @@ public class DaprPlacementContainerIT {
@Container
private static final DaprPlacementContainer PLACEMENT_CONTAINER =
- new DaprPlacementContainer(ContainerConstants.DAPR_PLACEMENT_IMAGE_TAG);
+ new DaprPlacementContainer(DaprContainerConstants.DAPR_PLACEMENT_IMAGE_TAG);
@Test
public void testDaprPlacementContainerDefaults() {
diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprSchedulerContainerIT.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprSchedulerContainerIT.java
new file mode 100644
index 0000000000..16a79730cc
--- /dev/null
+++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprSchedulerContainerIT.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2024 The Dapr Authors
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package io.dapr.it.testcontainers;
+
+import io.dapr.testcontainers.DaprSchedulerContainer;
+import org.junit.jupiter.api.Tag;
+import org.junit.jupiter.api.Test;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+@Testcontainers
+@Tag("testcontainers")
+public class DaprSchedulerContainerIT {
+
+ @Container
+ private static final DaprSchedulerContainer SCHEDULER_CONTAINER =
+ new DaprSchedulerContainer(DaprContainerConstants.DAPR_SCHEDULER_IMAGE_TAG);
+
+ @Test
+ public void testDaprSchedulerContainerDefaults() {
+ assertEquals(51005, SCHEDULER_CONTAINER.getPort(), "The default port is not set");
+ }
+}
diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprWorkflowsIT.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprWorkflowsIT.java
index 576d85508d..a389081f39 100644
--- a/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprWorkflowsIT.java
+++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/DaprWorkflowsIT.java
@@ -39,7 +39,7 @@
import java.util.Collections;
import java.util.Map;
-import static io.dapr.it.testcontainers.ContainerConstants.DAPR_IMAGE_TAG;
+import static io.dapr.it.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -57,7 +57,7 @@ public class DaprWorkflowsIT {
private static final Network DAPR_NETWORK = Network.newNetwork();
@Container
- private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_IMAGE_TAG)
+ private static final DaprContainer DAPR_CONTAINER = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("workflow-dapr-app")
.withNetwork(DAPR_NETWORK)
.withComponent(new Component("kvstore", "state.in-memory", "v1",
diff --git a/spring-boot-examples/consumer-app/src/test/java/io/dapr/springboot/examples/consumer/DaprTestContainersConfig.java b/spring-boot-examples/consumer-app/src/test/java/io/dapr/springboot/examples/consumer/DaprTestContainersConfig.java
index dc584b26b9..9afafae26c 100644
--- a/spring-boot-examples/consumer-app/src/test/java/io/dapr/springboot/examples/consumer/DaprTestContainersConfig.java
+++ b/spring-boot-examples/consumer-app/src/test/java/io/dapr/springboot/examples/consumer/DaprTestContainersConfig.java
@@ -31,6 +31,8 @@
import java.util.List;
import java.util.Map;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
+
@TestConfiguration(proxyBeanMethods = false)
public class DaprTestContainersConfig {
@@ -87,7 +89,7 @@ public DaprContainer daprContainer(Network daprNetwork, RabbitMQContainer rabbit
rabbitMqProperties.put("user", "guest");
rabbitMqProperties.put("password", "guest");
- return new DaprContainer("daprio/daprd:1.14.4")
+ return new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("consumer-app")
.withNetwork(daprNetwork).withComponent(new Component("pubsub",
"pubsub.rabbitmq", "v1", rabbitMqProperties))
diff --git a/spring-boot-examples/kubernetes/README.md b/spring-boot-examples/kubernetes/README.md
index 3bb5da421e..9f047d76f3 100644
--- a/spring-boot-examples/kubernetes/README.md
+++ b/spring-boot-examples/kubernetes/README.md
@@ -30,7 +30,7 @@ Once you have the cluster up and running you can install Dapr:
helm repo add dapr https://dapr.github.io/helm-charts/
helm repo update
helm upgrade --install dapr dapr/dapr \
---version=1.14.4 \
+--version=1.15.4 \
--namespace dapr-system \
--create-namespace \
--wait
diff --git a/spring-boot-examples/producer-app/src/test/java/io/dapr/springboot/examples/producer/DaprTestContainersConfig.java b/spring-boot-examples/producer-app/src/test/java/io/dapr/springboot/examples/producer/DaprTestContainersConfig.java
index 5d38f5841e..95603a36f1 100644
--- a/spring-boot-examples/producer-app/src/test/java/io/dapr/springboot/examples/producer/DaprTestContainersConfig.java
+++ b/spring-boot-examples/producer-app/src/test/java/io/dapr/springboot/examples/producer/DaprTestContainersConfig.java
@@ -33,6 +33,8 @@
import java.util.List;
import java.util.Map;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
+
@TestConfiguration(proxyBeanMethods = false)
public class DaprTestContainersConfig {
@@ -110,7 +112,7 @@ public DaprContainer daprContainer(Network daprNetwork, PostgreSQLContainer> p
rabbitMqProperties.put("user", "guest");
rabbitMqProperties.put("password", "guest");
- return new DaprContainer("daprio/daprd:1.14.4")
+ return new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("producer-app")
.withNetwork(daprNetwork)
.withComponent(new Component("kvstore", "state.postgresql", "v1", STATE_STORE_PROPERTIES))
diff --git a/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprContainer.java b/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprContainer.java
index 8959d91439..dd008ed33f 100644
--- a/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprContainer.java
+++ b/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprContainer.java
@@ -27,7 +27,6 @@
import org.testcontainers.containers.wait.strategy.WaitStrategy;
import org.testcontainers.images.builder.Transferable;
import org.testcontainers.utility.DockerImageName;
-import org.testcontainers.utility.MountableFile;
import org.yaml.snakeyaml.Yaml;
import java.io.IOException;
@@ -41,12 +40,17 @@
import java.util.Map;
import java.util.Set;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_PLACEMENT_IMAGE_TAG;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_SCHEDULER_IMAGE_TAG;
+
public class DaprContainer extends GenericContainer {
private static final Logger LOGGER = LoggerFactory.getLogger(DaprContainer.class);
private static final int DAPRD_DEFAULT_HTTP_PORT = 3500;
private static final int DAPRD_DEFAULT_GRPC_PORT = 50001;
private static final DaprProtocol DAPR_PROTOCOL = DaprProtocol.HTTP;
- private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("daprio/daprd");
+ private static final DockerImageName DEFAULT_IMAGE_NAME =
+ DockerImageName.parse(DAPR_RUNTIME_IMAGE_TAG);
private static final Yaml YAML_MAPPER = YamlMapperFactory.create();
private static final YamlConverter COMPONENT_CONVERTER = new ComponentYamlConverter(YAML_MAPPER);
private static final YamlConverter SUBSCRIPTION_CONVERTER = new SubscriptionYamlConverter(YAML_MAPPER);
@@ -64,8 +68,8 @@ public class DaprContainer extends GenericContainer {
private String appChannelAddress = "localhost";
private String placementService = "placement";
private String schedulerService = "scheduler";
- private String placementDockerImageName = "daprio/placement";
- private String schedulerDockerImageName = "daprio/scheduler";
+ private String placementDockerImageName = DAPR_PLACEMENT_IMAGE_TAG;
+ private String schedulerDockerImageName = DAPR_SCHEDULER_IMAGE_TAG;
private Configuration configuration;
private DaprPlacementContainer placementContainer;
@@ -137,6 +141,11 @@ public DaprContainer withPlacementService(String placementService) {
return this;
}
+ public DaprContainer withSchedulerService(String schedulerService) {
+ this.schedulerService = schedulerService;
+ return this;
+ }
+
public DaprContainer withAppName(String appName) {
this.appName = appName;
return this;
@@ -162,6 +171,11 @@ public DaprContainer withPlacementImage(String placementDockerImageName) {
return this;
}
+ public DaprContainer withSchedulerImage(String schedulerDockerImageName) {
+ this.schedulerDockerImageName = schedulerDockerImageName;
+ return this;
+ }
+
public DaprContainer withReusablePlacement(boolean shouldReusePlacement) {
this.shouldReusePlacement = shouldReusePlacement;
return this;
diff --git a/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprContainerConstants.java b/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprContainerConstants.java
new file mode 100644
index 0000000000..4ec620bba9
--- /dev/null
+++ b/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprContainerConstants.java
@@ -0,0 +1,8 @@
+package io.dapr.testcontainers;
+
+public interface DaprContainerConstants {
+ String DAPR_VERSION = "1.15.4";
+ String DAPR_PLACEMENT_IMAGE_TAG = "daprio/placement:" + DAPR_VERSION;
+ String DAPR_SCHEDULER_IMAGE_TAG = "daprio/scheduler:" + DAPR_VERSION;
+ String DAPR_RUNTIME_IMAGE_TAG = "daprio/daprd:" + DAPR_VERSION;
+}
diff --git a/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprSchedulerContainer.java b/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprSchedulerContainer.java
index bcac6a426e..96f530adc7 100644
--- a/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprSchedulerContainer.java
+++ b/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprSchedulerContainer.java
@@ -40,7 +40,7 @@ public DaprSchedulerContainer(DockerImageName dockerImageName) {
}
/**
- * Creates a new Dapr scheduler container.
+ * Creates a new Dapr schedulers container.
* @param image Docker image name.
*/
public DaprSchedulerContainer(String image) {
diff --git a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/DaprComponentTest.java b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/DaprComponentTest.java
index b0d3387228..d02a6c1cd7 100644
--- a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/DaprComponentTest.java
+++ b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/DaprComponentTest.java
@@ -26,6 +26,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
public class DaprComponentTest {
private final Yaml MAPPER = YamlMapperFactory.create();
@@ -33,7 +34,7 @@ public class DaprComponentTest {
@Test
public void containerConfigurationTest() {
- DaprContainer dapr = new DaprContainer("daprio/daprd")
+ DaprContainer dapr = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withDaprLogLevel(DaprLogLevel.DEBUG)
@@ -50,7 +51,7 @@ public void withComponentFromPath() {
URL stateStoreYaml = this.getClass().getClassLoader().getResource("dapr-resources/statestore.yaml");
Path path = Paths.get(stateStoreYaml.getPath());
- DaprContainer dapr = new DaprContainer("daprio/daprd")
+ DaprContainer dapr = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withComponent(path)
diff --git a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/ComponentYamlConverterTest.java b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/ComponentYamlConverterTest.java
index eced458096..405b9f3436 100644
--- a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/ComponentYamlConverterTest.java
+++ b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/ComponentYamlConverterTest.java
@@ -8,6 +8,7 @@
import java.util.Map;
import java.util.Set;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -17,7 +18,7 @@ class ComponentYamlConverterTest {
@Test
public void testComponentToYaml() {
- DaprContainer dapr = new DaprContainer("daprio/daprd")
+ DaprContainer dapr = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withComponent(new Component(
@@ -50,7 +51,7 @@ public void testComponentToYaml() {
@Test
public void testComponentWithInLineStringToYaml() {
- DaprContainer dapr = new DaprContainer("daprio/daprd")
+ DaprContainer dapr = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withComponent(new Component(
diff --git a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/ConfigurationYamlConverterTest.java b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/ConfigurationYamlConverterTest.java
index 01b8968d56..fe798611b5 100644
--- a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/ConfigurationYamlConverterTest.java
+++ b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/ConfigurationYamlConverterTest.java
@@ -22,6 +22,7 @@
import org.junit.jupiter.api.Test;
import org.yaml.snakeyaml.Yaml;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -52,7 +53,7 @@ public void testConfigurationToYaml() {
AppHttpPipeline appHttpPipeline = new AppHttpPipeline(handlers);
- DaprContainer dapr = new DaprContainer("daprio/daprd")
+ DaprContainer dapr = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withConfiguration(new Configuration("my-config", tracing, appHttpPipeline))
diff --git a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/HttpEndpointYamlConverterTest.java b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/HttpEndpointYamlConverterTest.java
index ec2540fe92..e83aed3f3c 100644
--- a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/HttpEndpointYamlConverterTest.java
+++ b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/HttpEndpointYamlConverterTest.java
@@ -7,6 +7,7 @@
import java.util.Set;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
import static org.junit.jupiter.api.Assertions.assertEquals;
class HttpEndpointYamlConverterTest {
@@ -16,7 +17,7 @@ class HttpEndpointYamlConverterTest {
@Test
void testHttpEndpointToYaml() {
- DaprContainer dapr = new DaprContainer("daprio/daprd")
+ DaprContainer dapr = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withHttpEndpoint(new HttpEndpoint("my-endpoint", "http://localhost:8080"))
diff --git a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/SubscriptionYamlConverterTest.java b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/SubscriptionYamlConverterTest.java
index a17984e603..2df4c6998d 100644
--- a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/SubscriptionYamlConverterTest.java
+++ b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/converter/SubscriptionYamlConverterTest.java
@@ -7,7 +7,8 @@
import java.util.Set;
-import static org.junit.jupiter.api.Assertions.*;
+import static io.dapr.testcontainers.DaprContainerConstants.DAPR_RUNTIME_IMAGE_TAG;
+import static org.junit.jupiter.api.Assertions.assertEquals;
class SubscriptionYamlConverterTest {
private final Yaml MAPPER = YamlMapperFactory.create();
@@ -15,7 +16,7 @@ class SubscriptionYamlConverterTest {
@Test
public void testSubscriptionToYaml() {
- DaprContainer dapr = new DaprContainer("daprio/daprd")
+ DaprContainer dapr = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG)
.withAppName("dapr-app")
.withAppPort(8081)
.withSubscription(new Subscription("my-subscription", "pubsub", "topic", "/events"))