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"))