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 51dce6f076..823f6f61f7 100644 --- a/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprContainer.java +++ b/testcontainers-dapr/src/main/java/io/dapr/testcontainers/DaprContainer.java @@ -48,7 +48,6 @@ 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(DAPR_RUNTIME_IMAGE_TAG); private static final Yaml YAML_MAPPER = YamlMapperFactory.create(); @@ -76,6 +75,7 @@ public class DaprContainer extends GenericContainer { private DaprSchedulerContainer schedulerContainer; private String appName; private Integer appPort; + private DaprProtocol appProtocol = DaprProtocol.HTTP; // default from docs private String appHealthCheckPath; private Integer appHealthCheckProbeInterval = 5; //default from docs private Integer appHealthCheckProbeTimeout = 500; //default from docs @@ -126,6 +126,11 @@ public DaprContainer withAppPort(Integer port) { return this; } + public DaprContainer withAppProtocol(DaprProtocol protocol) { + this.appProtocol = protocol; + return this; + } + public DaprContainer withAppChannelAddress(String appChannelAddress) { this.appChannelAddress = appChannelAddress; return this; @@ -308,8 +313,6 @@ protected void configure() { cmds.add("--app-id"); cmds.add(appName); cmds.add("--dapr-listen-addresses=0.0.0.0"); - cmds.add("--app-protocol"); - cmds.add(DAPR_PROTOCOL.getName()); cmds.add("--placement-host-address"); cmds.add(placementService + ":50005"); cmds.add("--scheduler-host-address"); @@ -325,6 +328,11 @@ protected void configure() { cmds.add(Integer.toString(appPort)); } + if (appProtocol != null) { + cmds.add("--app-protocol"); + cmds.add(appProtocol.getName()); + } + if (appHealthCheckPath != null && !appHealthCheckPath.isEmpty()) { cmds.add("--enable-app-health-check"); cmds.add("--app-health-check-path"); @@ -413,6 +421,10 @@ public Integer getAppPort() { return appPort; } + public DaprProtocol getAppProtocol() { + return appProtocol; + } + public String getAppHealthCheckPath() { return appHealthCheckPath; } diff --git a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/DaprContainerTest.java b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/DaprContainerTest.java index c930e98511..8281aae80e 100644 --- a/testcontainers-dapr/src/test/java/io/dapr/testcontainers/DaprContainerTest.java +++ b/testcontainers-dapr/src/test/java/io/dapr/testcontainers/DaprContainerTest.java @@ -78,4 +78,22 @@ public void appHealthParametersDefaultsTest(){ assertEquals(3, dapr2.getAppHealthCheckThreshold()); } + + @Test + public void appProtocolDefaultsTest() { + try (DaprContainer daprContainer = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG) + .withAppName("dapr-app")) { + daprContainer.configure(); + assertEquals(DaprProtocol.HTTP, daprContainer.getAppProtocol()); + } + + DaprProtocol protocol = DaprProtocol.GRPC; + try (DaprContainer daprContainer = new DaprContainer(DAPR_RUNTIME_IMAGE_TAG) + .withAppName("dapr-app4") + .withAppProtocol(protocol)) { + daprContainer.configure(); + assertEquals(protocol, daprContainer.getAppProtocol()); + } + + } }