Skip to content

Commit e7b98f9

Browse files
authored
Use distinct with strategies (#4467)
1 parent 5e6dbc7 commit e7b98f9

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

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

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,13 @@
2525
import java.net.URI;
2626
import java.util.ArrayList;
2727
import java.util.Comparator;
28+
import java.util.HashSet;
2829
import java.util.List;
2930
import java.util.Objects;
31+
import java.util.Set;
3032
import java.util.concurrent.TimeUnit;
3133
import java.util.concurrent.atomic.AtomicBoolean;
34+
import java.util.function.Predicate;
3235
import java.util.stream.Stream;
3336

3437
/**
@@ -137,10 +140,18 @@ public static DockerClientProviderStrategy getFirstValidStrategy(List<DockerClie
137140
.peek(strategy -> log.info("Loaded {} from ~/.testcontainers.properties, will try it first", strategy.getClass().getName())),
138141
strategies
139142
.stream()
140-
.filter(it -> !it.getClass().getCanonicalName().equals(dockerClientStrategyClassName))
141-
.filter(DockerClientProviderStrategy::isApplicable)
142143
.sorted(Comparator.comparing(DockerClientProviderStrategy::getPriority).reversed())
143144
)
145+
.filter(new Predicate<DockerClientProviderStrategy>() {
146+
147+
final Set<Class<? extends DockerClientProviderStrategy>> classes = new HashSet<>();
148+
149+
@Override
150+
public boolean test(DockerClientProviderStrategy dockerClientProviderStrategy) {
151+
return classes.add(dockerClientProviderStrategy.getClass());
152+
}
153+
})
154+
.filter(DockerClientProviderStrategy::isApplicable)
144155
.flatMap(strategy -> {
145156
try {
146157
DockerClient dockerClient = strategy.getDockerClient();

0 commit comments

Comments
 (0)