diff --git a/modules/trino/src/main/java/org/testcontainers/containers/TrinoContainer.java b/modules/trino/src/main/java/org/testcontainers/containers/TrinoContainer.java index 4f61b6e2352..84930393618 100644 --- a/modules/trino/src/main/java/org/testcontainers/containers/TrinoContainer.java +++ b/modules/trino/src/main/java/org/testcontainers/containers/TrinoContainer.java @@ -64,11 +64,13 @@ public String getDriverClassName() { @Override public String getJdbcUrl() { + String additionalUrlParams = constructUrlParameters("?", "&"); return String.format( - "jdbc:trino://%s:%s/%s", + "jdbc:trino://%s:%s/%s%s", getHost(), getMappedPort(TRINO_PORT), - Strings.nullToEmpty(catalog) + Strings.nullToEmpty(catalog), + additionalUrlParams ); } diff --git a/modules/trino/src/main/java/org/testcontainers/trino/TrinoContainer.java b/modules/trino/src/main/java/org/testcontainers/trino/TrinoContainer.java index 145ae4b454c..cc6d30f69f5 100644 --- a/modules/trino/src/main/java/org/testcontainers/trino/TrinoContainer.java +++ b/modules/trino/src/main/java/org/testcontainers/trino/TrinoContainer.java @@ -62,11 +62,13 @@ public String getDriverClassName() { @Override public String getJdbcUrl() { + String additionalUrlParams = constructUrlParameters("?", "&"); return String.format( - "jdbc:trino://%s:%s/%s", + "jdbc:trino://%s:%s/%s%s", getHost(), getMappedPort(TRINO_PORT), - Strings.nullToEmpty(catalog) + Strings.nullToEmpty(catalog), + additionalUrlParams ); } diff --git a/modules/trino/src/test/java/org/testcontainers/trino/TrinoContainerTest.java b/modules/trino/src/test/java/org/testcontainers/trino/TrinoContainerTest.java index c76c1bbb322..a179afe36f9 100644 --- a/modules/trino/src/test/java/org/testcontainers/trino/TrinoContainerTest.java +++ b/modules/trino/src/test/java/org/testcontainers/trino/TrinoContainerTest.java @@ -64,6 +64,26 @@ void testInitScript() throws Exception { } } + @Test + void testWithAdditionalUrlParamInJdbcUrl() throws Exception { + try ( + TrinoContainer trino = new TrinoContainer(TrinoTestImages.TRINO_TEST_IMAGE) + .withUrlParam("applicationNamePrefix", "tc-") + ) { + trino.start(); + String jdbcUrl = trino.getJdbcUrl(); + assertThat(jdbcUrl).contains("?"); + assertThat(jdbcUrl).contains("applicationNamePrefix=tc-"); + try ( + Connection connection = trino.createConnection(); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery("SELECT 1") + ) { + assertThat(resultSet.next()).as("results").isTrue(); + } + } + } + private void assertContainerHasCorrectExposedAndLivenessCheckPorts(TrinoContainer trino) { assertThat(trino.getExposedPorts()).containsExactly(8080); assertThat(trino.getLivenessCheckPortNumbers()).containsExactly(trino.getMappedPort(8080));