Skip to content

Commit bd461b7

Browse files
authored
Merge branch 'main' into update-servicebusemulatorcontainer-to-not-use-deprecated-mssqlservercontainer-anymore
2 parents 3be2005 + 8da56ff commit bd461b7

46 files changed

Lines changed: 133 additions & 76 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/dependabot.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ updates:
1818
update-types: [ "version-update:semver-major" ]
1919
- dependency-name: "com.fasterxml.jackson.datatype:jackson-datatype-jsr310"
2020
update-types: [ "version-update:semver-minor", "version-update:semver-patch" ]
21+
- dependency-name: "org.junit.jupiter:junit-jupiter"
22+
update-types: [ "version-update:semver-major" ]
23+
- dependency-name: "org.junit.platform:junit-platform-launcher"
24+
update-types: [ "version-update:semver-major" ]
2125
- package-ecosystem: "gradle"
2226
directory: "/"
2327
allow:
@@ -30,6 +34,10 @@ updates:
3034
ignore:
3135
- dependency-name: "com.gradleup.shadow"
3236
update-types: [ "version-update:semver-major" ]
37+
- dependency-name: "org.junit.jupiter:junit-jupiter"
38+
update-types: [ "version-update:semver-major" ]
39+
- dependency-name: "org.junit.platform:junit-platform-launcher"
40+
update-types: [ "version-update:semver-major" ]
3341

3442
# Explicit entry for each module
3543
- package-ecosystem: "gradle"
@@ -143,6 +151,8 @@ updates:
143151
ignore:
144152
- dependency-name: "org.apache.tomcat:tomcat-jdbc"
145153
update-types: [ "version-update:semver-minor" ]
154+
- dependency-name: "org.junit.jupiter:junit-jupiter"
155+
update-types: [ "version-update:semver-major" ]
146156
- package-ecosystem: "gradle"
147157
directory: "/modules/junit-jupiter"
148158
schedule:
@@ -151,6 +161,8 @@ updates:
151161
ignore:
152162
- dependency-name: "org.mockito:mockito-core"
153163
update-types: [ "version-update:semver-major" ]
164+
- dependency-name: "org.junit:junit-bom"
165+
update-types: [ "version-update:semver-major" ]
154166
- package-ecosystem: "gradle"
155167
directory: "/modules/k3s"
156168
schedule:
@@ -304,6 +316,8 @@ updates:
304316
ignore:
305317
- dependency-name: "io.r2dbc:r2dbc-spi"
306318
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
319+
- dependency-name: "org.junit.jupiter:junit-jupiter"
320+
update-types: [ "version-update:semver-major" ]
307321
- package-ecosystem: "gradle"
308322
directory: "/modules/rabbitmq"
309323
schedule:
@@ -347,6 +361,9 @@ updates:
347361
directory: "/modules/spock"
348362
schedule:
349363
interval: "monthly"
364+
ignore:
365+
- dependency-name: "org.junit:junit-bom"
366+
update-types: [ "version-update:semver-major" ]
350367
open-pull-requests-limit: 10
351368
- package-ecosystem: "gradle"
352369
directory: "/modules/tidb"
@@ -412,6 +429,12 @@ updates:
412429
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
413430
- dependency-name: "com.hazelcast:hazelcast"
414431
update-types: [ "version-update:semver-minor" ]
432+
- dependency-name: "org.junit.jupiter:junit-jupiter"
433+
update-types: [ "version-update:semver-major" ]
434+
- dependency-name: "org.junit.platform:junit-platform-launcher"
435+
update-types: [ "version-update:semver-major" ]
436+
- dependency-name: "com.gradleup.shadow"
437+
update-types: [ "version-update:semver-major" ]
415438

416439
# Smoke test
417440
- package-ecosystem: "gradle"
@@ -424,6 +447,12 @@ updates:
424447
update-types: [ "version-update:semver-minor" ]
425448
- dependency-name: "com.diffplug.spotless"
426449
update-types: [ "version-update:semver-major", "version-update:semver-minor" ]
450+
- dependency-name: "org.junit.jupiter:junit-jupiter"
451+
update-types: [ "version-update:semver-major" ]
452+
- dependency-name: "org.junit.platform:junit-platform-launcher"
453+
update-types: [ "version-update:semver-major" ]
454+
- dependency-name: "com.gradleup.shadow"
455+
update-types: [ "version-update:semver-major" ]
427456

428457
# GitHub Actions
429458
- package-ecosystem: "github-actions"

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ jobs:
9898
# we should not push empty results to the cache
9999
READ_ONLY_REMOTE_GRADLE_CACHE: true
100100
run: |
101-
TASKS=$(./gradlew --no-daemon --parallel -q testMatrix | jq 'del(.[] | select(. == ":testcontainers-databend:check" or . == ":testcontainers:check" or startswith(":docs:")))' --compact-output)
101+
TASKS=$(./gradlew --no-daemon --parallel -q testMatrix | jq 'del(.[] | select(. == ":testcontainers:check" or startswith(":docs:")))' --compact-output)
102102
echo $TASKS
103103
echo "matrix={\"gradle_args\":$TASKS}" >> $GITHUB_OUTPUT
104104
check:

core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -401,21 +401,34 @@ public static DockerClient getClientForConfig(TransportConfig transportConfig) {
401401
throw new IllegalArgumentException("Unknown transport type '" + transportType + "'");
402402
}
403403

404-
DefaultDockerClientConfig.Builder configBuilder = DefaultDockerClientConfig.createDefaultConfigBuilder();
404+
DefaultDockerClientConfig.Builder configBuilder = DefaultDockerClientConfig
405+
.createDefaultConfigBuilder()
406+
.withDockerHost(transportConfig.getDockerHost().toString());
405407

406-
if (configBuilder.build().getApiVersion() == RemoteApiVersion.UNKNOWN_VERSION) {
407-
configBuilder.withApiVersion(RemoteApiVersion.VERSION_1_44);
408-
}
409408
Map<String, String> headers = new HashMap<>();
410409
headers.put("x-tc-sid", DockerClientFactory.SESSION_ID);
411410
headers.put("User-Agent", String.format("tc-java/%s", DockerClientFactory.TESTCONTAINERS_VERSION));
412411

413-
return DockerClientImpl.getInstance(
414-
new AuthDelegatingDockerClientConfig(
415-
configBuilder.withDockerHost(transportConfig.getDockerHost().toString()).build()
416-
),
417-
new HeadersAddingDockerHttpClient(dockerHttpClient, headers)
418-
);
412+
try {
413+
if (configBuilder.build().getApiVersion() == RemoteApiVersion.UNKNOWN_VERSION) {
414+
configBuilder.withApiVersion(RemoteApiVersion.VERSION_1_44);
415+
}
416+
DockerClient client = DockerClientImpl.getInstance(
417+
new AuthDelegatingDockerClientConfig(configBuilder.build()),
418+
new HeadersAddingDockerHttpClient(dockerHttpClient, headers)
419+
);
420+
log.debug("Pinging Docker API version 1.44.");
421+
client.pingCmd().exec();
422+
return client;
423+
} catch (Exception ex) {
424+
log.debug("Fallback to Docker API version 1.32.");
425+
return DockerClientImpl.getInstance(
426+
new AuthDelegatingDockerClientConfig(
427+
configBuilder.withApiVersion(RemoteApiVersion.VERSION_1_32).build()
428+
),
429+
new HeadersAddingDockerHttpClient(dockerHttpClient, headers)
430+
);
431+
}
419432
}
420433

421434
public synchronized String getDockerHostIpAddress() {

core/src/main/java/org/testcontainers/utility/RyukContainer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
class RyukContainer extends GenericContainer<RyukContainer> {
1010

1111
RyukContainer() {
12-
super("testcontainers/ryuk:0.13.0");
12+
super("testcontainers/ryuk:0.14.0");
1313
withExposedPorts(8080);
1414
withCreateContainerCmdModifier(cmd -> {
1515
cmd.withName("testcontainers-ryuk-" + DockerClientFactory.SESSION_ID);

modules/activemq/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@ description = "Testcontainers :: ActiveMQ"
33
dependencies {
44
api project(':testcontainers')
55

6-
testImplementation "org.apache.activemq:activemq-client:6.1.7"
7-
testImplementation "org.apache.activemq:artemis-jakarta-client:2.42.0"
6+
testImplementation "org.apache.activemq:activemq-client:6.2.0"
7+
testImplementation "org.apache.activemq:artemis-jakarta-client:2.44.0"
88
}

modules/activemq/src/main/java/org/testcontainers/activemq/ActiveMQContainer.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@
2121
*/
2222
public class ActiveMQContainer extends GenericContainer<ActiveMQContainer> {
2323

24-
private static final DockerImageName DEFAULT_IMAGE = DockerImageName.parse("apache/activemq-classic");
24+
private static final DockerImageName APACHE_ACTIVEMQ_CLASSIC_IMAGE = DockerImageName.parse(
25+
"apache/activemq-classic"
26+
);
27+
28+
private static final DockerImageName DEFAULT_IMAGE = DockerImageName.parse("apache/activemq");
2529

2630
private static final int WEB_CONSOLE_PORT = 8161;
2731

@@ -45,7 +49,7 @@ public ActiveMQContainer(String image) {
4549

4650
public ActiveMQContainer(DockerImageName dockerImageName) {
4751
super(dockerImageName);
48-
dockerImageName.assertCompatibleWith(DEFAULT_IMAGE);
52+
dockerImageName.assertCompatibleWith(DEFAULT_IMAGE, APACHE_ACTIVEMQ_CLASSIC_IMAGE);
4953

5054
withExposedPorts(WEB_CONSOLE_PORT, TCP_PORT, AMQP_PORT, STOMP_PORT, MQTT_PORT, WS_PORT);
5155
waitingFor(Wait.forLogMessage(".*Apache ActiveMQ.*started.*", 1).withStartupTimeout(Duration.ofMinutes(1)));

modules/activemq/src/test/java/org/testcontainers/activemq/ActiveMQContainerTest.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import lombok.SneakyThrows;
1111
import org.apache.activemq.ActiveMQConnectionFactory;
1212
import org.junit.jupiter.api.Test;
13+
import org.junit.jupiter.params.ParameterizedTest;
14+
import org.junit.jupiter.params.provider.ValueSource;
1315

1416
import static org.assertj.core.api.Assertions.assertThat;
1517

@@ -18,7 +20,7 @@ class ActiveMQContainerTest {
1820
@Test
1921
void test() {
2022
try ( // container {
21-
ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq-classic:5.18.3")
23+
ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq:5.18.7")
2224
// }
2325
) {
2426
activemq.start();
@@ -29,11 +31,20 @@ void test() {
2931
}
3032
}
3133

34+
@ParameterizedTest
35+
@ValueSource(strings = { "apache/activemq-classic:5.18.7", "apache/activemq:5.18.7" })
36+
void compatibility(String image) {
37+
try (ActiveMQContainer activemq = new ActiveMQContainer(image)) {
38+
activemq.start();
39+
assertFunctionality(activemq, false);
40+
}
41+
}
42+
3243
@Test
3344
void customCredentials() {
3445
try (
3546
// settingCredentials {
36-
ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq-classic:5.18.3")
47+
ActiveMQContainer activemq = new ActiveMQContainer("apache/activemq:5.18.7")
3748
.withUser("testcontainers")
3849
.withPassword("testcontainers")
3950
// }

modules/azure/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ dependencies {
44
api project(':testcontainers')
55
api project(':testcontainers-mssqlserver')
66
// TODO use JDK's HTTP client and/or Apache HttpClient5
7-
shaded 'com.squareup.okhttp3:okhttp:5.1.0'
7+
shaded 'com.squareup.okhttp3:okhttp:5.3.2'
88

99
testImplementation platform("com.azure:azure-sdk-bom:1.2.32")
1010
testImplementation 'com.azure:azure-cosmos'
@@ -13,5 +13,5 @@ dependencies {
1313
testImplementation 'com.azure:azure-data-tables'
1414
testImplementation 'com.azure:azure-messaging-eventhubs'
1515
testImplementation 'com.azure:azure-messaging-servicebus'
16-
testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.2.0.jre8'
16+
testImplementation 'com.microsoft.sqlserver:mssql-jdbc:13.3.0.jre8-preview'
1717
}

modules/clickhouse/build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@ dependencies {
55
api project(':testcontainers-jdbc')
66

77
compileOnly project(':testcontainers-r2dbc')
8-
compileOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.2', classifier: 'http')
8+
compileOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.4', classifier: 'http')
99

1010
testImplementation project(':testcontainers-jdbc-test')
11-
testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.9.2', classifier: 'all')
11+
testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-jdbc', version: '0.9.4', classifier: 'all')
1212

13-
testImplementation 'com.clickhouse:client-v2:0.9.2'
13+
testImplementation 'com.clickhouse:client-v2:0.9.4'
1414
testImplementation testFixtures(project(':testcontainers-r2dbc'))
15-
testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.2', classifier: 'http')
15+
testRuntimeOnly(group: 'com.clickhouse', name: 'clickhouse-r2dbc', version: '0.9.4', classifier: 'http')
1616
}

modules/couchbase/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ description = "Testcontainers :: Couchbase"
33
dependencies {
44
api project(':testcontainers')
55
// TODO use JDK's HTTP client and/or Apache HttpClient5
6-
shaded 'com.squareup.okhttp3:okhttp:5.1.0'
6+
shaded 'com.squareup.okhttp3:okhttp:5.3.2'
77

8-
testImplementation 'com.couchbase.client:java-client:3.9.1'
8+
testImplementation 'com.couchbase.client:java-client:3.10.0'
99
testImplementation 'org.awaitility:awaitility:4.3.0'
1010
}

0 commit comments

Comments
 (0)