Skip to content

Commit c7622b4

Browse files
authored
Remove JUnit 4 support (#10805)
Fixes #970
1 parent 6472f4b commit c7622b4

File tree

11 files changed

+29
-219
lines changed

11 files changed

+29
-219
lines changed

core/build.gradle

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,33 @@ tasks.japicmp {
4949

5050
classExcludes = [
5151
"org.testcontainers.utility.RyukResourceReaper",
52+
"org.testcontainers.containers.FailureDetectingExternalResource",
53+
"org.testcontainers.containers.ComposeContainer",
54+
"org.testcontainers.containers.DockerComposeContainer",
55+
"org.testcontainers.containers.GenericContainer"
5256
]
5357

5458
methodExcludes = [
5559
"org.testcontainers.containers.Container#getDockerClient()",
5660
"org.testcontainers.containers.ContainerState#getDockerClient()",
5761
"org.testcontainers.containers.ContainerState#execInContainer(org.testcontainers.containers.ExecConfig)",
58-
"org.testcontainers.containers.ContainerState#execInContainer(java.nio.charset.Charset,org.testcontainers.containers.ExecConfig)"
62+
"org.testcontainers.containers.ContainerState#execInContainer(java.nio.charset.Charset,org.testcontainers.containers.ExecConfig)",
63+
"org.testcontainers.containers.ComposeContainer#apply(org.junit.runners.model.Statement, org.junit.runner.Description)",
64+
"org.testcontainers.containers.ComposeContainer#failed(java.lang.Throwable, org.junit.runner.Description)",
65+
"org.testcontainers.containers.ComposeContainer#finished(org.junit.runner.Description)",
66+
"org.testcontainers.containers.ComposeContainer#starting(org.junit.runner.Description)",
67+
"org.testcontainers.containers.ComposeContainer#succeeded(org.junit.runner.Description)",
68+
"org.testcontainers.containers.DockerComposeContainer#apply(org.junit.runners.model.Statement, org.junit.runner.Description)",
69+
"org.testcontainers.containers.DockerComposeContainer#failed(java.lang.Throwable, org.junit.runner.Description)",
70+
"org.testcontainers.containers.DockerComposeContainer#finished(org.junit.runner.Description)",
71+
"org.testcontainers.containers.DockerComposeContainer#starting(org.junit.runner.Description)",
72+
"org.testcontainers.containers.DockerComposeContainer#succeeded(org.junit.runner.Description)",
73+
"org.testcontainers.containers.GenericContainer#apply(org.junit.runners.model.Statement, org.junit.runner.Description)",
74+
"org.testcontainers.containers.GenericContainer#failed(java.lang.Throwable, org.junit.runner.Description)",
75+
"org.testcontainers.containers.GenericContainer#finished(org.junit.runner.Description)",
76+
"org.testcontainers.containers.GenericContainer#starting(org.junit.runner.Description)",
77+
"org.testcontainers.containers.GenericContainer#succeeded(org.junit.runner.Description)",
78+
'org.testcontainers.containers.Network$NetworkImpl#after()'
5979
]
6080

6181
fieldExcludes = []
@@ -69,7 +89,6 @@ configurations.all {
6989
}
7090

7191
dependencies {
72-
api 'junit:junit:4.13.2'
7392
api 'org.slf4j:slf4j-api:1.7.36'
7493
compileOnly 'org.jetbrains:annotations:26.0.2-1'
7594
testCompileOnly 'org.jetbrains:annotations:26.0.2-1'

core/src/main/java/org/testcontainers/containers/ComposeContainer.java

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import lombok.NonNull;
66
import lombok.extern.slf4j.Slf4j;
77
import org.apache.commons.lang3.SystemUtils;
8-
import org.junit.runner.Description;
9-
import org.junit.runners.model.Statement;
108
import org.testcontainers.containers.output.OutputFrame;
119
import org.testcontainers.containers.wait.strategy.Wait;
1210
import org.testcontainers.containers.wait.strategy.WaitStrategy;
@@ -31,7 +29,7 @@
3129
* It uses either Compose V2 contained within the Docker binary, or a containerised version of Compose V2.
3230
*/
3331
@Slf4j
34-
public class ComposeContainer extends FailureDetectingExternalResource implements Startable {
32+
public class ComposeContainer implements Startable {
3533

3634
private final Map<String, Integer> scalingPreferences = new HashMap<>();
3735

@@ -93,32 +91,6 @@ public ComposeContainer(String identifier, List<File> composeFiles) {
9391
this.project = this.composeDelegate.getProject();
9492
}
9593

96-
@Override
97-
@Deprecated
98-
public Statement apply(Statement base, Description description) {
99-
return super.apply(base, description);
100-
}
101-
102-
@Override
103-
@Deprecated
104-
public void starting(Description description) {
105-
start();
106-
}
107-
108-
@Override
109-
@Deprecated
110-
protected void succeeded(Description description) {}
111-
112-
@Override
113-
@Deprecated
114-
protected void failed(Throwable e, Description description) {}
115-
116-
@Override
117-
@Deprecated
118-
public void finished(Description description) {
119-
stop();
120-
}
121-
12294
@Override
12395
public void start() {
12496
synchronized (MUTEX) {

core/src/main/java/org/testcontainers/containers/DockerComposeContainer.java

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import lombok.NonNull;
66
import lombok.extern.slf4j.Slf4j;
77
import org.apache.commons.lang3.SystemUtils;
8-
import org.junit.runner.Description;
9-
import org.junit.runners.model.Statement;
108
import org.testcontainers.containers.output.OutputFrame;
119
import org.testcontainers.containers.wait.strategy.Wait;
1210
import org.testcontainers.containers.wait.strategy.WaitStrategy;
@@ -30,9 +28,7 @@
3028
* Container which launches Docker Compose, for the purposes of launching a defined set of containers.
3129
*/
3230
@Slf4j
33-
public class DockerComposeContainer<SELF extends DockerComposeContainer<SELF>>
34-
extends FailureDetectingExternalResource
35-
implements Startable {
31+
public class DockerComposeContainer<SELF extends DockerComposeContainer<SELF>> implements Startable {
3632

3733
private final Map<String, Integer> scalingPreferences = new HashMap<>();
3834

@@ -99,32 +95,6 @@ public DockerComposeContainer(String identifier, List<File> composeFiles) {
9995
this.project = this.composeDelegate.getProject();
10096
}
10197

102-
@Override
103-
@Deprecated
104-
public Statement apply(Statement base, Description description) {
105-
return super.apply(base, description);
106-
}
107-
108-
@Override
109-
@Deprecated
110-
public void starting(Description description) {
111-
start();
112-
}
113-
114-
@Override
115-
@Deprecated
116-
protected void succeeded(Description description) {}
117-
118-
@Override
119-
@Deprecated
120-
protected void failed(Throwable e, Description description) {}
121-
122-
@Override
123-
@Deprecated
124-
public void finished(Description description) {
125-
stop();
126-
}
127-
12898
@Override
12999
public void start() {
130100
synchronized (MUTEX) {

core/src/main/java/org/testcontainers/containers/FailureDetectingExternalResource.java

Lines changed: 0 additions & 50 deletions
This file was deleted.

core/src/main/java/org/testcontainers/containers/GenericContainer.java

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@
3232
import org.apache.commons.lang3.SystemUtils;
3333
import org.jetbrains.annotations.NotNull;
3434
import org.jetbrains.annotations.Nullable;
35-
import org.junit.runner.Description;
36-
import org.junit.runners.model.Statement;
3735
import org.rnorth.ducttape.unreliables.Unreliables;
3836
import org.slf4j.Logger;
3937
import org.testcontainers.DockerClientFactory;
@@ -52,8 +50,6 @@
5250
import org.testcontainers.images.builder.Transferable;
5351
import org.testcontainers.lifecycle.Startable;
5452
import org.testcontainers.lifecycle.Startables;
55-
import org.testcontainers.lifecycle.TestDescription;
56-
import org.testcontainers.lifecycle.TestLifecycleAware;
5753
import org.testcontainers.utility.Base58;
5854
import org.testcontainers.utility.CommandLine;
5955
import org.testcontainers.utility.DockerImageName;
@@ -106,7 +102,6 @@
106102
*/
107103
@Data
108104
public class GenericContainer<SELF extends GenericContainer<SELF>>
109-
extends FailureDetectingExternalResource
110105
implements Container<SELF>, AutoCloseable, WaitStrategyTarget, Startable {
111106

112107
public static final int CONTAINER_RUNNING_TIMEOUT_SEC = 30;
@@ -1053,57 +1048,6 @@ public void addExposedPorts(int... ports) {
10531048
this.containerDef.addExposedTcpPorts(ports);
10541049
}
10551050

1056-
private TestDescription toDescription(Description description) {
1057-
return new TestDescription() {
1058-
@Override
1059-
public String getTestId() {
1060-
return description.getDisplayName();
1061-
}
1062-
1063-
@Override
1064-
public String getFilesystemFriendlyName() {
1065-
return description.getClassName() + "-" + description.getMethodName();
1066-
}
1067-
};
1068-
}
1069-
1070-
@Override
1071-
@Deprecated
1072-
public Statement apply(Statement base, Description description) {
1073-
return super.apply(base, description);
1074-
}
1075-
1076-
@Override
1077-
@Deprecated
1078-
protected void starting(Description description) {
1079-
if (this instanceof TestLifecycleAware) {
1080-
((TestLifecycleAware) this).beforeTest(toDescription(description));
1081-
}
1082-
this.start();
1083-
}
1084-
1085-
@Override
1086-
@Deprecated
1087-
protected void succeeded(Description description) {
1088-
if (this instanceof TestLifecycleAware) {
1089-
((TestLifecycleAware) this).afterTest(toDescription(description), Optional.empty());
1090-
}
1091-
}
1092-
1093-
@Override
1094-
@Deprecated
1095-
protected void failed(Throwable e, Description description) {
1096-
if (this instanceof TestLifecycleAware) {
1097-
((TestLifecycleAware) this).afterTest(toDescription(description), Optional.of(e));
1098-
}
1099-
}
1100-
1101-
@Override
1102-
@Deprecated
1103-
protected void finished(Description description) {
1104-
this.stop();
1105-
}
1106-
11071051
/**
11081052
* {@inheritDoc}
11091053
*/

core/src/main/java/org/testcontainers/containers/Network.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
import lombok.Builder;
55
import lombok.Getter;
66
import lombok.Singular;
7-
import org.junit.rules.ExternalResource;
8-
import org.junit.rules.TestRule;
97
import org.testcontainers.DockerClientFactory;
108
import org.testcontainers.utility.ResourceReaper;
119

@@ -17,7 +15,7 @@
1715
import java.util.concurrent.atomic.AtomicBoolean;
1816
import java.util.function.Consumer;
1917

20-
public interface Network extends AutoCloseable, TestRule {
18+
public interface Network extends AutoCloseable {
2119
Network SHARED = new NetworkImpl(false, null, Collections.emptySet(), null) {
2220
@Override
2321
public void close() {
@@ -40,7 +38,7 @@ static NetworkImpl.NetworkImplBuilder builder() {
4038

4139
@Builder
4240
@Getter
43-
class NetworkImpl extends ExternalResource implements Network {
41+
class NetworkImpl implements Network {
4442

4543
private final String name = UUID.randomUUID().toString();
4644

@@ -100,11 +98,6 @@ private String create() {
10098
return createNetworkCmd.exec().getId();
10199
}
102100

103-
@Override
104-
protected void after() {
105-
close();
106-
}
107-
108101
@Override
109102
public synchronized void close() {
110103
if (initialized.getAndSet(false)) {

core/src/test/java/org/testcontainers/containers/ExposedHostTest.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77
import org.junit.jupiter.api.AfterEach;
88
import org.junit.jupiter.api.BeforeAll;
99
import org.junit.jupiter.api.Test;
10-
import org.junit.runner.Description;
11-
import org.junit.runners.model.Statement;
1210
import org.testcontainers.DockerClientFactory;
1311
import org.testcontainers.TestImages;
1412
import org.testcontainers.Testcontainers;
@@ -189,11 +187,6 @@ public String getId() {
189187

190188
@Override
191189
public void close() {}
192-
193-
@Override
194-
public Statement apply(Statement base, Description description) {
195-
return null;
196-
}
197190
};
198191

199192
List<com.github.dockerjava.api.model.Network> networks = DockerClientFactory

core/src/test/java/org/testcontainers/containers/FailureDetectingExternalResourceTest.java

Lines changed: 0 additions & 28 deletions
This file was deleted.

core/src/test/java/org/testcontainers/junit/DockerComposeLogConsumerTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.testcontainers.junit;
22

33
import org.junit.jupiter.api.Test;
4-
import org.junit.runner.Description;
54
import org.testcontainers.containers.DockerComposeContainer;
65
import org.testcontainers.containers.output.OutputFrame.OutputType;
76
import org.testcontainers.containers.output.WaitingConsumer;
@@ -22,7 +21,7 @@ void testLogConsumer() throws TimeoutException {
2221
.withLogConsumer("redis_1", logConsumer);
2322

2423
try {
25-
environment.starting(Description.EMPTY);
24+
environment.start();
2625
logConsumer.waitUntil(
2726
frame -> {
2827
return (
@@ -34,7 +33,7 @@ void testLogConsumer() throws TimeoutException {
3433
TimeUnit.SECONDS
3534
);
3635
} finally {
37-
environment.finished(Description.EMPTY);
36+
environment.stop();
3837
}
3938
}
4039
}

0 commit comments

Comments
 (0)