Skip to content

Commit f54a29a

Browse files
aidando73kiview
andauthored
getLivenessCheckPortNumbers() should return mapped port (#5734)
Co-authored-by: Kevin Wittek <[email protected]>
1 parent 9847d59 commit f54a29a

File tree

16 files changed

+98
-16
lines changed

16 files changed

+98
-16
lines changed

modules/db2/src/main/java/org/testcontainers/containers/Db2Container.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import java.time.Duration;
88
import java.time.temporal.ChronoUnit;
9-
import java.util.HashSet;
109
import java.util.Set;
1110

1211
public class Db2Container extends JdbcDatabaseContainer<Db2Container> {
@@ -54,9 +53,14 @@ public Db2Container(final DockerImageName dockerImageName) {
5453
addExposedPort(DB2_PORT);
5554
}
5655

56+
/**
57+
* @return the ports on which to check if the container is ready
58+
* @deprecated use {@link #getLivenessCheckPortNumbers()} instead
59+
*/
5760
@Override
61+
@Deprecated
5862
protected Set<Integer> getLivenessCheckPorts() {
59-
return new HashSet<>(getMappedPort(DB2_PORT));
63+
return super.getLivenessCheckPorts();
6064
}
6165

6266
@Override

modules/db2/src/test/java/org/testcontainers/junit/db2/SimpleDb2Test.java

+6
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public void testSimple() throws SQLException {
2121

2222
int resultSetInt = resultSet.getInt(1);
2323
assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1);
24+
assertHasCorrectExposedAndLivenessCheckPorts(db2);
2425
}
2526
}
2627

@@ -37,4 +38,9 @@ public void testWithAdditionalUrlParamInJdbcUrl() {
3738
assertThat(jdbcUrl).contains(":sslConnection=false;");
3839
}
3940
}
41+
42+
private void assertHasCorrectExposedAndLivenessCheckPorts(Db2Container db2) {
43+
assertThat(db2.getExposedPorts()).containsExactly(Db2Container.DB2_PORT);
44+
assertThat(db2.getLivenessCheckPortNumbers()).containsExactly(db2.getMappedPort(Db2Container.DB2_PORT));
45+
}
4046
}

modules/mssqlserver/src/main/java/org/testcontainers/containers/MSSQLServerContainer.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.testcontainers.containers;
22

3-
import com.google.common.collect.Sets;
43
import org.testcontainers.utility.DockerImageName;
54
import org.testcontainers.utility.LicenseAcceptance;
65

@@ -64,7 +63,7 @@ public MSSQLServerContainer(final DockerImageName dockerImageName) {
6463

6564
@Override
6665
public Set<Integer> getLivenessCheckPortNumbers() {
67-
return Sets.newHashSet(MS_SQL_SERVER_PORT);
66+
return super.getLivenessCheckPortNumbers();
6867
}
6968

7069
@Override

modules/mssqlserver/src/test/java/org/testcontainers/junit/mssqlserver/SimpleMSSQLServerTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public void testSimple() throws SQLException {
2525

2626
int resultSetInt = resultSet.getInt(1);
2727
assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1);
28+
assertHasCorrectExposedAndLivenessCheckPorts(mssqlServer);
2829
}
2930
}
3031

@@ -64,4 +65,10 @@ public void testSetupDatabase() throws SQLException {
6465
assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(3);
6566
}
6667
}
68+
69+
private void assertHasCorrectExposedAndLivenessCheckPorts(MSSQLServerContainer<?> mssqlServer) {
70+
assertThat(mssqlServer.getExposedPorts()).containsExactly(MSSQLServerContainer.MS_SQL_SERVER_PORT);
71+
assertThat(mssqlServer.getLivenessCheckPortNumbers())
72+
.containsExactly(mssqlServer.getMappedPort(MSSQLServerContainer.MS_SQL_SERVER_PORT));
73+
}
6774
}

modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import org.jetbrains.annotations.NotNull;
44
import org.testcontainers.utility.DockerImageName;
55

6-
import java.util.HashSet;
76
import java.util.Set;
87

98
/**
@@ -56,10 +55,15 @@ public MySQLContainer(final DockerImageName dockerImageName) {
5655
addExposedPort(MYSQL_PORT);
5756
}
5857

58+
/**
59+
* @return the ports on which to check if the container is ready
60+
* @deprecated use {@link #getLivenessCheckPortNumbers()} instead
61+
*/
5962
@NotNull
6063
@Override
64+
@Deprecated
6165
protected Set<Integer> getLivenessCheckPorts() {
62-
return new HashSet<>(getMappedPort(MYSQL_PORT));
66+
return super.getLivenessCheckPorts();
6367
}
6468

6569
@Override

modules/mysql/src/test/java/org/testcontainers/junit/mysql/SimpleMySQLTest.java

+6
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public void testSimple() throws SQLException {
5757
int resultSetInt = resultSet.getInt(1);
5858

5959
assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1);
60+
assertHasCorrectExposedAndLivenessCheckPorts(mysql);
6061
}
6162
}
6263

@@ -237,4 +238,9 @@ public void testWithAdditionalUrlParamInJdbcUrl() {
237238
mysql.stop();
238239
}
239240
}
241+
242+
private void assertHasCorrectExposedAndLivenessCheckPorts(MySQLContainer<?> mysql) {
243+
assertThat(mysql.getExposedPorts()).containsExactly(MySQLContainer.MYSQL_PORT);
244+
assertThat(mysql.getLivenessCheckPortNumbers()).containsExactly(mysql.getMappedPort(MySQLContainer.MYSQL_PORT));
245+
}
240246
}

modules/nginx/src/main/java/org/testcontainers/containers/NginxContainer.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import java.net.MalformedURLException;
88
import java.net.URL;
9-
import java.util.Collections;
109
import java.util.Set;
1110

1211
/**
@@ -42,10 +41,15 @@ public NginxContainer(final DockerImageName dockerImageName) {
4241
setCommand("nginx", "-g", "daemon off;");
4342
}
4443

44+
/**
45+
* @return the ports on which to check if the container is ready
46+
* @deprecated use {@link #getLivenessCheckPortNumbers()} instead
47+
*/
4548
@NotNull
4649
@Override
50+
@Deprecated
4751
protected Set<Integer> getLivenessCheckPorts() {
48-
return Collections.singleton(getMappedPort(80));
52+
return super.getLivenessCheckPorts();
4953
}
5054

5155
public URL getBaseUrl(String scheme, int port) throws MalformedURLException {

modules/nginx/src/test/java/org/testcontainers/junit/SimpleNginxTest.java

+6
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ public void testSimple() throws Exception {
5858
.as("An HTTP GET from the Nginx server returns the index.html from the custom content directory")
5959
.contains("Hello World!");
6060
// }
61+
assertHasCorrectExposedAndLivenessCheckPorts(nginx);
62+
}
63+
64+
private void assertHasCorrectExposedAndLivenessCheckPorts(NginxContainer<?> nginxContainer) throws Exception {
65+
assertThat(nginxContainer.getExposedPorts()).containsExactly(80);
66+
assertThat(nginxContainer.getLivenessCheckPortNumbers()).containsExactly(nginxContainer.getMappedPort(80));
6167
}
6268

6369
private static String responseFromNginx(URL baseUrl) throws IOException {

modules/postgresql/src/main/java/org/testcontainers/containers/PostgreSQLContainer.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import java.time.Duration;
88
import java.time.temporal.ChronoUnit;
9-
import java.util.Collections;
109
import java.util.Set;
1110

1211
/**
@@ -62,10 +61,15 @@ public PostgreSQLContainer(final DockerImageName dockerImageName) {
6261
addExposedPort(POSTGRESQL_PORT);
6362
}
6463

64+
/**
65+
* @return the ports on which to check if the container is ready
66+
* @deprecated use {@link #getLivenessCheckPortNumbers()} instead
67+
*/
6568
@NotNull
6669
@Override
70+
@Deprecated
6771
protected Set<Integer> getLivenessCheckPorts() {
68-
return Collections.singleton(getMappedPort(POSTGRESQL_PORT));
72+
return super.getLivenessCheckPorts();
6973
}
7074

7175
@Override

modules/postgresql/src/test/java/org/testcontainers/junit/postgresql/SimplePostgreSQLTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public void testSimple() throws SQLException {
2626
ResultSet resultSet = performQuery(postgres, "SELECT 1");
2727
int resultSetInt = resultSet.getInt(1);
2828
assertThat(resultSetInt).as("A basic SELECT query succeeds").isEqualTo(1);
29+
assertHasCorrectExposedAndLivenessCheckPorts(postgres);
2930
}
3031
}
3132

@@ -86,4 +87,10 @@ public void testWithAdditionalUrlParamInJdbcUrl() {
8687
assertThat(jdbcUrl).contains("charSet=UNICODE");
8788
}
8889
}
90+
91+
private void assertHasCorrectExposedAndLivenessCheckPorts(PostgreSQLContainer<?> postgres) {
92+
assertThat(postgres.getExposedPorts()).containsExactly(PostgreSQLContainer.POSTGRESQL_PORT);
93+
assertThat(postgres.getLivenessCheckPortNumbers())
94+
.containsExactly(postgres.getMappedPort(PostgreSQLContainer.POSTGRESQL_PORT));
95+
}
8996
}

modules/presto/src/main/java/org/testcontainers/containers/PrestoContainer.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import java.sql.SQLException;
1010
import java.time.Duration;
1111
import java.time.temporal.ChronoUnit;
12-
import java.util.HashSet;
1312
import java.util.Set;
1413

1514
/**
@@ -56,10 +55,15 @@ public PrestoContainer(final DockerImageName dockerImageName) {
5655
addExposedPort(PRESTO_PORT);
5756
}
5857

58+
/**
59+
* @return the ports on which to check if the container is ready
60+
* @deprecated use {@link #getLivenessCheckPortNumbers()} instead
61+
*/
5962
@NotNull
6063
@Override
64+
@Deprecated
6165
protected Set<Integer> getLivenessCheckPorts() {
62-
return new HashSet<>(getMappedPort(PRESTO_PORT));
66+
return super.getLivenessCheckPorts();
6367
}
6468

6569
@Override

modules/presto/src/test/java/org/testcontainers/containers/PrestoContainerTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public void testSimple() throws Exception {
3232
assertThat(resultSet.getString("node_version"))
3333
.as("Presto version")
3434
.isEqualTo(PrestoContainer.DEFAULT_TAG);
35+
assertHasCorrectExposedAndLivenessCheckPorts(prestoSql);
3536
}
3637
}
3738
}
@@ -149,4 +150,10 @@ public void testTcJdbcUri() throws Exception {
149150
.isEqualTo(Connection.TRANSACTION_READ_UNCOMMITTED);
150151
}
151152
}
153+
154+
private void assertHasCorrectExposedAndLivenessCheckPorts(PrestoContainer<?> prestoSql) {
155+
assertThat(prestoSql.getExposedPorts()).containsExactly(PrestoContainer.PRESTO_PORT);
156+
assertThat(prestoSql.getLivenessCheckPortNumbers())
157+
.containsExactly(prestoSql.getMappedPort(PrestoContainer.PRESTO_PORT));
158+
}
152159
}

modules/tidb/src/main/java/org/testcontainers/tidb/TiDBContainer.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import org.testcontainers.utility.DockerImageName;
77

88
import java.time.Duration;
9-
import java.util.HashSet;
109
import java.util.Set;
1110

1211
/**
@@ -51,10 +50,15 @@ public TiDBContainer(final DockerImageName dockerImageName) {
5150
);
5251
}
5352

53+
/**
54+
* @return the ports on which to check if the container is ready
55+
* @deprecated use {@link #getLivenessCheckPortNumbers()} instead
56+
*/
5457
@NotNull
5558
@Override
59+
@Deprecated
5660
protected Set<Integer> getLivenessCheckPorts() {
57-
return new HashSet<>(getMappedPort(TIDB_PORT));
61+
return super.getLivenessCheckPorts();
5862
}
5963

6064
@Override

modules/tidb/src/test/java/org/testcontainers/junit/tidb/SimpleTiDBTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public void testSimple() throws SQLException {
2121

2222
int resultSetInt = resultSet.getInt(1);
2323
assertThat(resultSetInt).isEqualTo(1);
24+
assertHasCorrectExposedAndLivenessCheckPorts(tidb);
2425
}
2526
}
2627

@@ -51,4 +52,13 @@ public void testWithAdditionalUrlParamInJdbcUrl() {
5152
tidb.stop();
5253
}
5354
}
55+
56+
private void assertHasCorrectExposedAndLivenessCheckPorts(TiDBContainer tidb) {
57+
Integer tidbPort = 4000;
58+
Integer restApiPort = 10080;
59+
60+
assertThat(tidb.getExposedPorts()).containsExactlyInAnyOrder(tidbPort, restApiPort);
61+
assertThat(tidb.getLivenessCheckPortNumbers())
62+
.containsExactlyInAnyOrder(tidb.getMappedPort(tidbPort), tidb.getMappedPort(restApiPort));
63+
}
5464
}

modules/trino/src/main/java/org/testcontainers/containers/TrinoContainer.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import java.sql.Connection;
99
import java.sql.SQLException;
10-
import java.util.HashSet;
1110
import java.util.Set;
1211

1312
public class TrinoContainer extends JdbcDatabaseContainer<TrinoContainer> {
@@ -37,10 +36,15 @@ public TrinoContainer(final DockerImageName dockerImageName) {
3736
addExposedPort(TRINO_PORT);
3837
}
3938

39+
/**
40+
* @return the ports on which to check if the container is ready
41+
* @deprecated use {@link #getLivenessCheckPortNumbers()} instead
42+
*/
4043
@NotNull
4144
@Override
45+
@Deprecated
4246
protected Set<Integer> getLivenessCheckPorts() {
43-
return new HashSet<>(getMappedPort(TRINO_PORT));
47+
return super.getLivenessCheckPorts();
4448
}
4549

4650
@Override

modules/trino/src/test/java/org/testcontainers/containers/TrinoContainerTest.java

+6
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public void testSimple() throws Exception {
2424
assertThat(resultSet.getString("node_version"))
2525
.as("Trino version")
2626
.isEqualTo(TrinoContainer.DEFAULT_TAG);
27+
assertContainerHasCorrectExposedAndLivenessCheckPorts(trino);
2728
}
2829
}
2930
}
@@ -61,4 +62,9 @@ public void testInitScript() throws Exception {
6162
}
6263
}
6364
}
65+
66+
private void assertContainerHasCorrectExposedAndLivenessCheckPorts(TrinoContainer trino) {
67+
assertThat(trino.getExposedPorts()).containsExactly(8080);
68+
assertThat(trino.getLivenessCheckPortNumbers()).containsExactly(trino.getMappedPort(8080));
69+
}
6470
}

0 commit comments

Comments
 (0)