diff --git a/CHANGELOG.md b/CHANGELOG.md
index 329d58cd062..fbf1e14c2b6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,7 +7,6 @@ All notable changes to this project will be documented in this file.
- Fixed erroneous version reference used during CI testing of shaded dependencies
- Fixed leakage of Vibur and Tomcat JDBC test dependencies in `jdbc-test` and `mysql` modules (#382)
- Added timeout and retries for creation of `RemoteWebDriver` (#381, #373, #257)
-- Fixed double encoding of listNetwork's filter until it's fixed in docker-java (#385)
- Fixed various shading issues
### Changed
@@ -15,6 +14,7 @@ All notable changes to this project will be documented in this file.
- Added `getFirstMappedPort` method (#377)
- Extracted Oracle XE container into a separate repository ([testcontainers/testcontainers-java-module-oracle-xe](https://github.com/testcontainers/testcontainers-java-module-oracle-xe))
- Added shading tests
+- Updated docker-java to 3.0.12 (#393)
## [1.3.1] - 2017-06-22
### Fixed
diff --git a/core/pom.xml b/core/pom.xml
index 755e3fc0156..0238b2b2f64 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -21,11 +21,6 @@
${docker-java.version}
compile
-
-
- de.gesellix
- unix-socket-factory
-
org.glassfish.jersey.core
*
@@ -61,12 +56,6 @@
2.0.1
-
- org.rnorth
- tcp-unix-socket-proxy
- 1.0.1
-
-
org.zeroturnaround
zt-exec
@@ -269,6 +258,8 @@
dest="${project.build.directory}/exploded/"/>
+
diff --git a/core/src/main/java/org/testcontainers/DockerClientFactory.java b/core/src/main/java/org/testcontainers/DockerClientFactory.java
index bb40de7fa3b..84995ef072d 100644
--- a/core/src/main/java/org/testcontainers/DockerClientFactory.java
+++ b/core/src/main/java/org/testcontainers/DockerClientFactory.java
@@ -50,7 +50,6 @@ public class DockerClientFactory {
private static final List CONFIGURATION_STRATEGIES =
asList(new EnvironmentAndSystemPropertyClientProviderStrategy(),
new UnixSocketClientProviderStrategy(),
- new ProxiedUnixSocketClientProviderStrategy(),
new DockerMachineClientProviderStrategy(),
new WindowsClientProviderStrategy());
private String activeApiVersion;
diff --git a/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java b/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java
index 3b3098a5372..5df83da47c6 100644
--- a/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java
+++ b/core/src/main/java/org/testcontainers/containers/wait/HostPortWaitStrategy.java
@@ -6,7 +6,7 @@
import org.testcontainers.DockerClientFactory;
import org.testcontainers.containers.ContainerLaunchException;
import org.testcontainers.containers.GenericContainer;
-import org.testcontainers.dockerclient.ProxiedUnixSocketClientProviderStrategy;
+import org.testcontainers.dockerclient.DockerMachineClientProviderStrategy;
import org.testcontainers.dockerclient.WindowsClientProviderStrategy;
import java.net.Socket;
@@ -93,7 +93,7 @@ protected void waitUntilReady() {
private boolean shouldCheckWithCommand() {
// Special case for Docker for Mac, see #160
- if(DockerClientFactory.instance().isUsing(ProxiedUnixSocketClientProviderStrategy.class)
+ if(!DockerClientFactory.instance().isUsing(DockerMachineClientProviderStrategy.class)
&& System.getProperty("os.name").toLowerCase().contains("mac")) {
return true;
}
diff --git a/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java b/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java
index e932e509750..bc1cf2ea174 100644
--- a/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java
+++ b/core/src/main/java/org/testcontainers/dockerclient/DockerClientProviderStrategy.java
@@ -3,6 +3,7 @@
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.core.DockerClientBuilder;
import com.github.dockerjava.core.DockerClientConfig;
+import com.github.dockerjava.netty.NettyDockerCmdExecFactory;
import com.google.common.base.Throwables;
import org.apache.commons.io.IOUtils;
import org.jetbrains.annotations.Nullable;
@@ -141,7 +142,7 @@ public DockerClient getClient() {
protected DockerClient getClientForConfig(DockerClientConfig config) {
return DockerClientBuilder
.getInstance(config)
- .withDockerCmdExecFactory(new TestcontainersDockerCmdExecFactory())
+ .withDockerCmdExecFactory(new NettyDockerCmdExecFactory())
.build();
}
diff --git a/core/src/main/java/org/testcontainers/dockerclient/DockerMachineClientProviderStrategy.java b/core/src/main/java/org/testcontainers/dockerclient/DockerMachineClientProviderStrategy.java
index b06dc0fa697..175d215e376 100644
--- a/core/src/main/java/org/testcontainers/dockerclient/DockerMachineClientProviderStrategy.java
+++ b/core/src/main/java/org/testcontainers/dockerclient/DockerMachineClientProviderStrategy.java
@@ -16,6 +16,9 @@
*/
@Slf4j
public class DockerMachineClientProviderStrategy extends DockerClientProviderStrategy {
+
+ public static final int PRIORITY = EnvironmentAndSystemPropertyClientProviderStrategy.PRIORITY - 10;
+
private static final String PING_TIMEOUT_DEFAULT = "30";
private static final String PING_TIMEOUT_PROPERTY_NAME = "testcontainers.dockermachineprovider.timeout";
@@ -26,7 +29,7 @@ protected boolean isApplicable() {
@Override
protected int getPriority() {
- return ProxiedUnixSocketClientProviderStrategy.PRIORITY - 10;
+ return PRIORITY;
}
@Override
diff --git a/core/src/main/java/org/testcontainers/dockerclient/EnvironmentAndSystemPropertyClientProviderStrategy.java b/core/src/main/java/org/testcontainers/dockerclient/EnvironmentAndSystemPropertyClientProviderStrategy.java
index 195a07a4024..451da5b7152 100644
--- a/core/src/main/java/org/testcontainers/dockerclient/EnvironmentAndSystemPropertyClientProviderStrategy.java
+++ b/core/src/main/java/org/testcontainers/dockerclient/EnvironmentAndSystemPropertyClientProviderStrategy.java
@@ -12,7 +12,7 @@
@Slf4j
public class EnvironmentAndSystemPropertyClientProviderStrategy extends DockerClientProviderStrategy {
- public static final int PRIORITY = 100;
+ public static final int PRIORITY = UnixSocketClientProviderStrategy.PRIORITY - 10;
private static final String PING_TIMEOUT_DEFAULT = "10";
private static final String PING_TIMEOUT_PROPERTY_NAME = "testcontainers.environmentprovider.timeout";
diff --git a/core/src/main/java/org/testcontainers/dockerclient/ProxiedUnixSocketClientProviderStrategy.java b/core/src/main/java/org/testcontainers/dockerclient/ProxiedUnixSocketClientProviderStrategy.java
deleted file mode 100644
index ffd689fcb9e..00000000000
--- a/core/src/main/java/org/testcontainers/dockerclient/ProxiedUnixSocketClientProviderStrategy.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.testcontainers.dockerclient;
-
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang.SystemUtils;
-import org.rnorth.tcpunixsocketproxy.TcpToUnixSocketProxy;
-
-import java.io.File;
-
-@Slf4j
-public class ProxiedUnixSocketClientProviderStrategy extends UnixSocketClientProviderStrategy {
-
- public static final int PRIORITY = EnvironmentAndSystemPropertyClientProviderStrategy.PRIORITY - 10;
-
- private final File socketFile = new File(DOCKER_SOCK_PATH);
-
- @Override
- protected boolean isApplicable() {
- return !SystemUtils.IS_OS_LINUX && socketFile.exists();
- }
-
- @Override
- protected int getPriority() {
- return PRIORITY;
- }
-
- @Override
- public void test() throws InvalidConfigurationException {
- TcpToUnixSocketProxy proxy = new TcpToUnixSocketProxy(socketFile);
-
- try {
- int proxyPort = proxy.start().getPort();
-
- config = tryConfiguration("tcp://localhost:" + proxyPort);
-
- log.debug("Accessing unix domain socket via TCP proxy (" + DOCKER_SOCK_PATH + " via localhost:" + proxyPort + ")");
- } catch (Exception e) {
-
- proxy.stop();
-
- throw new InvalidConfigurationException("ping failed", e);
- }
-
- }
-
- @Override
- public String getDescription() {
- return "local Unix socket (via TCP proxy)";
- }
-
-}
diff --git a/core/src/main/java/org/testcontainers/dockerclient/TestcontainersDockerCmdExecFactory.java b/core/src/main/java/org/testcontainers/dockerclient/TestcontainersDockerCmdExecFactory.java
deleted file mode 100644
index 3ddc2e9dc08..00000000000
--- a/core/src/main/java/org/testcontainers/dockerclient/TestcontainersDockerCmdExecFactory.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package org.testcontainers.dockerclient;
-
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.github.dockerjava.api.command.ListNetworksCmd;
-import com.github.dockerjava.api.model.Network;
-import com.github.dockerjava.core.DockerClientConfig;
-import com.github.dockerjava.core.util.FiltersEncoder;
-import com.github.dockerjava.netty.MediaType;
-import com.github.dockerjava.netty.NettyDockerCmdExecFactory;
-import com.github.dockerjava.netty.WebTarget;
-import com.github.dockerjava.netty.exec.AbstrSyncDockerCmdExec;
-import lombok.SneakyThrows;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.lang.reflect.Field;
-import java.util.List;
-
-class TestcontainersDockerCmdExecFactory extends NettyDockerCmdExecFactory {
-
- @Override
- @SneakyThrows
- public ListNetworksCmd.Exec createListNetworksCmdExec() {
- Field baseResourceField = NettyDockerCmdExecFactory.class.getDeclaredField("baseResource");
- baseResourceField.setAccessible(true);
-
- // FIXME Workaround for https://github.com/docker-java/docker-java/issues/857
- return new ListNetworksCmdExec((WebTarget) baseResourceField.get(this), getDockerClientConfig());
- }
-
- private static class ListNetworksCmdExec extends AbstrSyncDockerCmdExec> implements ListNetworksCmd.Exec {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(com.github.dockerjava.netty.exec.ListNetworksCmdExec.class);
-
- public ListNetworksCmdExec(WebTarget baseResource, DockerClientConfig dockerClientConfig) {
- super(baseResource, dockerClientConfig);
- }
-
- @Override
- protected List execute(ListNetworksCmd command) {
- WebTarget webTarget = getBaseResource().path("/networks");
-
- if (command.getFilters() != null && !command.getFilters().isEmpty()) {
- // Next line was changed (urlPathSegmentEscaper was removed)
- webTarget = webTarget.queryParam("filters", FiltersEncoder.jsonEncode(command.getFilters()));
- }
-
- LOGGER.trace("GET: {}", webTarget);
-
- return webTarget.request().accept(MediaType.APPLICATION_JSON).get(new TypeReference>() {
- });
- }
- }
-
-}
\ No newline at end of file
diff --git a/core/src/main/java/org/testcontainers/dockerclient/UnixSocketClientProviderStrategy.java b/core/src/main/java/org/testcontainers/dockerclient/UnixSocketClientProviderStrategy.java
index 774f3184ef3..09d93c2610e 100644
--- a/core/src/main/java/org/testcontainers/dockerclient/UnixSocketClientProviderStrategy.java
+++ b/core/src/main/java/org/testcontainers/dockerclient/UnixSocketClientProviderStrategy.java
@@ -6,6 +6,7 @@
import org.apache.commons.lang.SystemUtils;
import org.jetbrains.annotations.NotNull;
+import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -13,6 +14,9 @@
@Slf4j
public class UnixSocketClientProviderStrategy extends DockerClientProviderStrategy {
+
+ public static final int PRIORITY = 100;
+
protected static final String DOCKER_SOCK_PATH = "/var/run/docker.sock";
private static final String SOCKET_LOCATION = "unix://" + DOCKER_SOCK_PATH;
private static final int SOCKET_FILE_MODE_MASK = 0xc000;
@@ -21,7 +25,12 @@ public class UnixSocketClientProviderStrategy extends DockerClientProviderStrate
@Override
protected boolean isApplicable() {
- return SystemUtils.IS_OS_LINUX;
+ return SystemUtils.IS_OS_UNIX && new File(DOCKER_SOCK_PATH).exists();
+ }
+
+ @Override
+ protected int getPriority() {
+ return PRIORITY;
}
@Override
diff --git a/pom.xml b/pom.xml
index cac5baef31f..390827b249b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -167,7 +167,7 @@
UTF-8
- 3.0.10
+ 3.0.12
diff --git a/shade-test/jar-file/src/test/java/org/testcontainers/JarFileShadingTest.java b/shade-test/jar-file/src/test/java/org/testcontainers/JarFileShadingTest.java
index 42dc9a0e631..37296d7ad6d 100644
--- a/shade-test/jar-file/src/test/java/org/testcontainers/JarFileShadingTest.java
+++ b/shade-test/jar-file/src/test/java/org/testcontainers/JarFileShadingTest.java
@@ -61,7 +61,8 @@ public void testMetaInf() throws Exception {
);
assertThatFileList(root.resolve("META-INF").resolve("native")).containsOnly(
- "liborg-testcontainers-shaded-netty-transport-native-epoll.so"
+ "liborg-testcontainers-shaded-netty-transport-native-epoll.so",
+ "liborg-testcontainers-shaded-netty-transport-native-kqueue.jnilib"
);
}