diff --git a/src/main/java/com/github/dockerjava/api/model/ExposedPort.java b/src/main/java/com/github/dockerjava/api/model/ExposedPort.java
index 25829b8aa..4e30c8df0 100644
--- a/src/main/java/com/github/dockerjava/api/model/ExposedPort.java
+++ b/src/main/java/com/github/dockerjava/api/model/ExposedPort.java
@@ -65,7 +65,7 @@ public ExposedPort(int port) {
* @param scheme
* the {@link #getScheme() scheme}, tcp or udp
* @param port
- * the {@link #getPort() port number}
+ * the {@link #getPort() port number or port range}
* @deprecated use {@link #ExposedPort(int, InternetProtocol)}
*/
@Deprecated
@@ -124,9 +124,9 @@ public static ExposedPort parse(String serialized) throws IllegalArgumentExcepti
String[] parts = serialized.split("/");
switch (parts.length) {
case 1:
- return new ExposedPort(Integer.valueOf(parts[0]));
+ return new ExposedPort(Integer.parseInt(parts[0]));
case 2:
- return new ExposedPort(Integer.valueOf(parts[0]), InternetProtocol.parse(parts[1]));
+ return new ExposedPort(Integer.parseInt(parts[0]), InternetProtocol.parse(parts[1]));
default:
throw new IllegalArgumentException();
}
diff --git a/src/main/java/com/github/dockerjava/api/model/Ports.java b/src/main/java/com/github/dockerjava/api/model/Ports.java
index e0250bba1..17b2ad432 100644
--- a/src/main/java/com/github/dockerjava/api/model/Ports.java
+++ b/src/main/java/com/github/dockerjava/api/model/Ports.java
@@ -1,16 +1,5 @@
package com.github.dockerjava.api.model;
-import static org.apache.commons.lang.StringUtils.isEmpty;
-
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.builder.EqualsBuilder;
-
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
@@ -23,6 +12,16 @@
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.node.NullNode;
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang.builder.EqualsBuilder;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import static org.apache.commons.lang.StringUtils.isEmpty;
/**
* A container for port bindings, made available as a {@link Map} via its {@link #getBindings()} method.
@@ -111,15 +110,15 @@ public Map getBindings() {
/**
* Creates a {@link Binding} for the given IP address and port number.
*/
- public static Binding binding(String hostIp, Integer hostPort) {
+ public static Binding binding(String hostIp, String hostPort) {
return new Binding(hostIp, hostPort);
}
/**
* Creates a {@link Binding} for the given port number, leaving the IP address undefined.
*/
- public static Binding binding(Integer hostPort) {
- return new Binding(hostPort);
+ public static Binding binding(String hostPort) {
+ return new Binding(null, hostPort);
}
/**
@@ -132,38 +131,38 @@ public static Binding binding(Integer hostPort) {
*/
public static class Binding {
- private final String hostIp;
-
- private final Integer hostPort;
-
/**
- * Creates a {@link Binding} for the given {@link #getHostIp() IP address} and {@link #getHostPort() port number}.
+ * Creates a {@link Binding} for the given {@link #getHostPort() port number or range}, leaving the {@link #getHostIp() IP address}
+ * undefined.
*
* @see Ports#bind(ExposedPort, Binding)
* @see ExposedPort
*/
- public Binding(String hostIp, Integer hostPort) {
- this.hostIp = isEmpty(hostIp) ? null : hostIp;
- this.hostPort = hostPort;
+ public static Binding forPort(String port) {
+ return new Binding(null, port);
}
/**
- * Creates a {@link Binding} for the given {@link #getHostPort() port number}, leaving the {@link #getHostIp() IP address}
+ * Creates a {@link Binding} for the given {@link #getHostIp() IP address}, leaving the {@link #getHostPort() port number}
* undefined.
- *
- * @see Ports#bind(ExposedPort, Binding)
- * @see ExposedPort
*/
- public Binding(Integer hostPort) {
- this(null, hostPort);
+ public static Binding forIp(String hostIp) {
+ return new Binding(hostIp, null);
}
+ private final String hostIp;
+
+ private final String hostPort;
+
/**
- * Creates a {@link Binding} for the given {@link #getHostIp() IP address}, leaving the {@link #getHostPort() port number}
- * undefined.
+ * Creates a {@link Binding} for the given {@link #getHostIp() IP address} and {@link #getHostPort() port number}.
+ *
+ * @see Ports#bind(ExposedPort, Binding)
+ * @see ExposedPort
*/
- public Binding(String hostIp) {
- this(hostIp, null);
+ public Binding(String hostIp, String hostPort) {
+ this.hostIp = isEmpty(hostIp) ? null : hostIp;
+ this.hostPort = hostPort;
}
/**
@@ -184,7 +183,7 @@ public String getHostIp() {
/**
* @return the port number on the Docker host. May be null, in which case Docker will dynamically assign a port.
*/
- public Integer getHostPort() {
+ public String getHostPort() {
return hostPort;
}
@@ -208,10 +207,10 @@ public static Binding parse(String serialized) throws IllegalArgumentException {
String[] parts = serialized.split(":");
switch (parts.length) {
case 2: {
- return new Binding(parts[0], Integer.valueOf(parts[1]));
+ return new Binding(parts[0], parts[1]);
}
case 1: {
- return parts[0].contains(".") ? new Binding(parts[0]) : new Binding(Integer.valueOf(parts[0]));
+ return parts[0].contains(".") ? Binding.forIp(parts[0]) : Binding.forPort(parts[0]);
}
default: {
throw new IllegalArgumentException();
@@ -231,7 +230,7 @@ public static Binding parse(String serialized) throws IllegalArgumentException {
@Override
public String toString() {
if (isEmpty(hostIp)) {
- return Integer.toString(hostPort);
+ return hostPort;
} else if (hostPort == null) {
return hostIp;
} else {
@@ -270,7 +269,7 @@ public Ports deserialize(JsonParser jsonParser, DeserializationContext deseriali
JsonNode bindingNode = bindingsArray.get(i);
if (!bindingNode.equals(NullNode.getInstance())) {
String hostIp = bindingNode.get("HostIp").textValue();
- int hostPort = bindingNode.get("HostPort").asInt();
+ String hostPort = bindingNode.get("HostPort").textValue();
out.bind(ExposedPort.parse(portNode.getKey()), new Binding(hostIp, hostPort));
}
}
@@ -294,8 +293,7 @@ public void serialize(Ports portBindings, JsonGenerator jsonGen, SerializerProvi
for (Binding binding : entry.getValue()) {
jsonGen.writeStartObject();
jsonGen.writeStringField("HostIp", binding.getHostIp() == null ? "" : binding.getHostIp());
- jsonGen.writeStringField("HostPort", binding.getHostPort() == null ? "" : binding.getHostPort()
- .toString());
+ jsonGen.writeStringField("HostPort", binding.getHostPort() == null ? "" : binding.getHostPort());
jsonGen.writeEndObject();
}
jsonGen.writeEndArray();
diff --git a/src/test/java/com/github/dockerjava/api/command/InspectContainerResponseTest.java b/src/test/java/com/github/dockerjava/api/command/InspectContainerResponseTest.java
index c9d40b65f..f64cf4ead 100644
--- a/src/test/java/com/github/dockerjava/api/command/InspectContainerResponseTest.java
+++ b/src/test/java/com/github/dockerjava/api/command/InspectContainerResponseTest.java
@@ -25,7 +25,9 @@
import static org.hamcrest.Matchers.isEmptyString;
import static org.hamcrest.Matchers.nullValue;
import static org.hamcrest.core.IsNot.not;
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
/**
* Tests for {@link InspectContainerResponse}.
diff --git a/src/test/java/com/github/dockerjava/api/model/BindingTest.java b/src/test/java/com/github/dockerjava/api/model/BindingTest.java
index 23e793cf8..290e66b82 100644
--- a/src/test/java/com/github/dockerjava/api/model/BindingTest.java
+++ b/src/test/java/com/github/dockerjava/api/model/BindingTest.java
@@ -10,12 +10,12 @@ public class BindingTest {
@Test
public void parseIpAndPort() {
- assertEquals(Binding.parse("127.0.0.1:80"), Ports.binding("127.0.0.1", 80));
+ assertEquals(Binding.parse("127.0.0.1:80"), Ports.binding("127.0.0.1", "80"));
}
@Test
public void parsePortOnly() {
- assertEquals(Binding.parse("80"), Ports.binding(null, 80));
+ assertEquals(Binding.parse("80"), Ports.binding(null, "80"));
}
@Test
@@ -28,7 +28,8 @@ public void parseEmptyString() {
assertEquals(Binding.parse(""), Ports.binding(null, null));
}
- @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Error parsing Binding 'nonsense'")
+ // Strings can be used since it can be a range. Let the docker daemon do the validation.
+ @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Error parsing Binding 'nonsense'", enabled = false)
public void parseInvalidInput() {
Binding.parse("nonsense");
}
diff --git a/src/test/java/com/github/dockerjava/api/model/PortBindingTest.java b/src/test/java/com/github/dockerjava/api/model/PortBindingTest.java
index e5f5f4c1b..296148177 100644
--- a/src/test/java/com/github/dockerjava/api/model/PortBindingTest.java
+++ b/src/test/java/com/github/dockerjava/api/model/PortBindingTest.java
@@ -13,22 +13,22 @@ public class PortBindingTest {
@Test
public void fullDefinition() {
assertEquals(PortBinding.parse("127.0.0.1:80:8080/tcp"),
- new PortBinding(new Binding("127.0.0.1", 80), TCP_8080));
+ new PortBinding(new Binding("127.0.0.1", "80"), TCP_8080));
}
@Test
public void noProtocol() {
- assertEquals(PortBinding.parse("127.0.0.1:80:8080"), new PortBinding(new Binding("127.0.0.1", 80), TCP_8080));
+ assertEquals(PortBinding.parse("127.0.0.1:80:8080"), new PortBinding(new Binding("127.0.0.1", "80"), TCP_8080));
}
@Test
public void noHostIp() {
- assertEquals(PortBinding.parse("80:8080/tcp"), new PortBinding(new Binding(80), TCP_8080));
+ assertEquals(PortBinding.parse("80:8080/tcp"), new PortBinding(Binding.forPort("80"), TCP_8080));
}
@Test
public void portsOnly() {
- assertEquals(PortBinding.parse("80:8080"), new PortBinding(new Binding(80), TCP_8080));
+ assertEquals(PortBinding.parse("80:8080"), new PortBinding(Binding.forPort("80"), TCP_8080));
}
@Test
@@ -38,10 +38,10 @@ public void exposedPortOnly() {
@Test
public void dynamicHostPort() {
- assertEquals(PortBinding.parse("127.0.0.1::8080"), new PortBinding(new Binding("127.0.0.1"), TCP_8080));
+ assertEquals(PortBinding.parse("127.0.0.1::8080"), new PortBinding(Binding.forIp("127.0.0.1"), TCP_8080));
}
- @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Error parsing PortBinding 'nonsense'")
+ @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Error parsing PortBinding 'nonsense'", enabled = false)
public void parseInvalidInput() {
PortBinding.parse("nonsense");
}
diff --git a/src/test/java/com/github/dockerjava/api/model/Ports_SerializingTest.java b/src/test/java/com/github/dockerjava/api/model/Ports_SerializingTest.java
index 8c8d2014f..fb89561e5 100644
--- a/src/test/java/com/github/dockerjava/api/model/Ports_SerializingTest.java
+++ b/src/test/java/com/github/dockerjava/api/model/Ports_SerializingTest.java
@@ -1,13 +1,12 @@
package com.github.dockerjava.api.model;
-import static org.testng.Assert.assertEquals;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.dockerjava.api.model.Ports.Binding;
+import org.testng.annotations.Test;
import java.util.Map;
-import org.testng.annotations.Test;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.github.dockerjava.api.model.Ports.Binding;
+import static org.testng.Assert.assertEquals;
public class Ports_SerializingTest {
private final ObjectMapper objectMapper = new ObjectMapper();
@@ -24,15 +23,15 @@ public void deserializingPortWithMultipleBindings() throws Exception {
Binding[] bindings = map.get(ExposedPort.tcp(80));
assertEquals(bindings.length, 2);
- assertEquals(bindings[0], new Binding("10.0.0.1", 80));
- assertEquals(bindings[1], new Binding("10.0.0.2", 80));
+ assertEquals(bindings[0], new Binding("10.0.0.1", "80"));
+ assertEquals(bindings[1], new Binding("10.0.0.2", "80"));
}
@Test
public void serializingPortWithMultipleBindings() throws Exception {
Ports ports = new Ports();
- ports.bind(ExposedPort.tcp(80), new Binding("10.0.0.1", 80));
- ports.bind(ExposedPort.tcp(80), new Binding("10.0.0.2", 80));
+ ports.bind(ExposedPort.tcp(80), new Binding("10.0.0.1", "80"));
+ ports.bind(ExposedPort.tcp(80), new Binding("10.0.0.2", "80"));
assertEquals(objectMapper.writeValueAsString(ports), jsonWithDoubleBindingForOnePort);
}
diff --git a/src/test/java/com/github/dockerjava/api/model/Ports_addBindingsTest.java b/src/test/java/com/github/dockerjava/api/model/Ports_addBindingsTest.java
index a5a8697f5..401ee4b44 100644
--- a/src/test/java/com/github/dockerjava/api/model/Ports_addBindingsTest.java
+++ b/src/test/java/com/github/dockerjava/api/model/Ports_addBindingsTest.java
@@ -1,13 +1,12 @@
package com.github.dockerjava.api.model;
-import static org.testng.Assert.assertEquals;
-
-import java.util.Map;
-
+import com.github.dockerjava.api.model.Ports.Binding;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import com.github.dockerjava.api.model.Ports.Binding;
+import java.util.Map;
+
+import static org.testng.Assert.assertEquals;
/**
* As there may be several {@link Binding}s per {@link ExposedPort}, it makes a difference if you add {@link PortBinding}s for the same or
@@ -18,9 +17,9 @@ public class Ports_addBindingsTest {
private static final ExposedPort TCP_90 = ExposedPort.tcp(90);
- private static final Binding BINDING_8080 = Ports.binding(8080);
+ private static final Binding BINDING_8080 = Ports.binding("8080");
- private static final Binding BINDING_9090 = Ports.binding(9090);
+ private static final Binding BINDING_9090 = Ports.binding("9090");
private Ports ports;
diff --git a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java
index ba05ab4e3..aee8a60a8 100644
--- a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java
+++ b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java
@@ -1,17 +1,69 @@
package com.github.dockerjava.core;
+import com.github.dockerjava.api.async.ResultCallback;
+import com.github.dockerjava.api.command.AttachContainerCmd;
+import com.github.dockerjava.api.command.AuthCmd.Exec;
+import com.github.dockerjava.api.command.BuildImageCmd;
+import com.github.dockerjava.api.command.CommitCmd;
+import com.github.dockerjava.api.command.ConnectToNetworkCmd;
+import com.github.dockerjava.api.command.ContainerDiffCmd;
+import com.github.dockerjava.api.command.CopyArchiveFromContainerCmd;
+import com.github.dockerjava.api.command.CopyArchiveToContainerCmd;
+import com.github.dockerjava.api.command.CopyFileFromContainerCmd;
+import com.github.dockerjava.api.command.CreateContainerCmd;
+import com.github.dockerjava.api.command.CreateContainerResponse;
+import com.github.dockerjava.api.command.CreateImageCmd;
+import com.github.dockerjava.api.command.CreateImageResponse;
+import com.github.dockerjava.api.command.CreateNetworkCmd;
+import com.github.dockerjava.api.command.CreateNetworkResponse;
+import com.github.dockerjava.api.command.CreateVolumeCmd;
+import com.github.dockerjava.api.command.CreateVolumeResponse;
+import com.github.dockerjava.api.command.DisconnectFromNetworkCmd;
+import com.github.dockerjava.api.command.DockerCmdExecFactory;
+import com.github.dockerjava.api.command.EventsCmd;
+import com.github.dockerjava.api.command.ExecCreateCmd;
+import com.github.dockerjava.api.command.ExecStartCmd;
+import com.github.dockerjava.api.command.InfoCmd;
+import com.github.dockerjava.api.command.InspectContainerCmd;
+import com.github.dockerjava.api.command.InspectExecCmd;
+import com.github.dockerjava.api.command.InspectImageCmd;
+import com.github.dockerjava.api.command.InspectNetworkCmd;
+import com.github.dockerjava.api.command.InspectVolumeCmd;
+import com.github.dockerjava.api.command.KillContainerCmd;
+import com.github.dockerjava.api.command.ListContainersCmd;
+import com.github.dockerjava.api.command.ListImagesCmd;
+import com.github.dockerjava.api.command.ListNetworksCmd;
+import com.github.dockerjava.api.command.ListVolumesCmd;
+import com.github.dockerjava.api.command.LogContainerCmd;
+import com.github.dockerjava.api.command.PauseContainerCmd;
+import com.github.dockerjava.api.command.PingCmd;
+import com.github.dockerjava.api.command.PullImageCmd;
+import com.github.dockerjava.api.command.PushImageCmd;
+import com.github.dockerjava.api.command.RemoveContainerCmd;
+import com.github.dockerjava.api.command.RemoveImageCmd;
+import com.github.dockerjava.api.command.RemoveNetworkCmd;
+import com.github.dockerjava.api.command.RemoveVolumeCmd;
+import com.github.dockerjava.api.command.RenameContainerCmd;
+import com.github.dockerjava.api.command.RestartContainerCmd;
+import com.github.dockerjava.api.command.SaveImageCmd;
+import com.github.dockerjava.api.command.SearchImagesCmd;
+import com.github.dockerjava.api.command.StartContainerCmd;
+import com.github.dockerjava.api.command.StatsCmd;
+import com.github.dockerjava.api.command.StopContainerCmd;
+import com.github.dockerjava.api.command.TagImageCmd;
+import com.github.dockerjava.api.command.TopContainerCmd;
+import com.github.dockerjava.api.command.UnpauseContainerCmd;
+import com.github.dockerjava.api.command.UpdateContainerCmd;
+import com.github.dockerjava.api.command.VersionCmd;
+import com.github.dockerjava.api.command.WaitContainerCmd;
+import com.github.dockerjava.api.model.BuildResponseItem;
+
+import javax.net.ssl.SSLContext;
import java.io.IOException;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;
-import javax.net.ssl.SSLContext;
-
-import com.github.dockerjava.api.async.ResultCallback;
-import com.github.dockerjava.api.command.*;
-import com.github.dockerjava.api.command.AuthCmd.Exec;
-import com.github.dockerjava.api.model.BuildResponseItem;
-
/**
* Special {@link DockerCmdExecFactory} implementation that collects container and image creations while test execution for the purpose of
* automatically cleanup.
diff --git a/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java
index 99eefb4de..9ae4e3e98 100644
--- a/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java
+++ b/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java
@@ -263,7 +263,7 @@ public void testBuildFromPrivateRegistry() throws Exception {
CreateContainerResponse testregistry = dockerClient
.createContainerCmd("testregistry:2")
.withName("registry")
- .withPortBindings(new PortBinding(new Ports.Binding(5000), ExposedPort.tcp(5000)))
+ .withPortBindings(new PortBinding(Ports.Binding.forPort("5000"), ExposedPort.tcp(5000)))
.withEnv("REGISTRY_AUTH=htpasswd", "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm",
"REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd", "REGISTRY_LOG_LEVEL=debug",
"REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt", "REGISTRY_HTTP_TLS_KEY=/certs/domain.key")
diff --git a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java
index f2fd32b6a..05d2b6d0d 100644
--- a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java
+++ b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java
@@ -361,9 +361,9 @@ public void createContainerWithPortBindings() throws DockerException {
ExposedPort tcp23 = ExposedPort.tcp(23);
Ports portBindings = new Ports();
- portBindings.bind(tcp22, Ports.binding(11022));
- portBindings.bind(tcp23, Ports.binding(11023));
- portBindings.bind(tcp23, Ports.binding(11024));
+ portBindings.bind(tcp22, Ports.binding("11022"));
+ portBindings.bind(tcp23, Ports.binding("11023"));
+ portBindings.bind(tcp23, Ports.binding("11024"));
CreateContainerResponse container = dockerClient.createContainerCmd(BUSYBOX_IMAGE).withCmd("true")
.withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec();
@@ -377,13 +377,13 @@ public void createContainerWithPortBindings() throws DockerException {
assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp22)[0],
- is(equalTo(Ports.binding(11022))));
+ is(equalTo(Ports.binding("11022"))));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[0],
- is(equalTo(Ports.binding(11023))));
+ is(equalTo(Ports.binding("11023"))));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[1],
- is(equalTo(Ports.binding(11024))));
+ is(equalTo(Ports.binding("11024"))));
}
diff --git a/src/test/java/com/github/dockerjava/core/command/RenameContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/RenameContainerCmdImplTest.java
index 9f503a87b..582ab2556 100644
--- a/src/test/java/com/github/dockerjava/core/command/RenameContainerCmdImplTest.java
+++ b/src/test/java/com/github/dockerjava/core/command/RenameContainerCmdImplTest.java
@@ -6,12 +6,17 @@
import com.github.dockerjava.api.exception.NotFoundException;
import com.github.dockerjava.client.AbstractDockerClientTest;
import org.testng.ITestResult;
-import org.testng.annotations.*;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
import java.lang.reflect.Method;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.*;
+import static org.hamcrest.Matchers.isEmptyString;
+import static org.hamcrest.Matchers.not;
@Test(groups = "integration")
public class RenameContainerCmdImplTest extends AbstractDockerClientTest {
diff --git a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java
index a2f1e51d8..4437eaaa7 100644
--- a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java
+++ b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java
@@ -1,31 +1,5 @@
package com.github.dockerjava.core.command;
-import static com.github.dockerjava.api.model.AccessMode.ro;
-import static com.github.dockerjava.api.model.Capability.MKNOD;
-import static com.github.dockerjava.api.model.Capability.NET_ADMIN;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.contains;
-import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.hasSize;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.isEmptyString;
-import static org.hamcrest.Matchers.not;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.hamcrest.Matchers.startsWith;
-
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-
-import org.testng.ITestResult;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.dockerjava.api.command.CreateContainerResponse;
import com.github.dockerjava.api.command.InspectContainerResponse;
@@ -42,6 +16,31 @@
import com.github.dockerjava.api.model.Volume;
import com.github.dockerjava.api.model.VolumesFrom;
import com.github.dockerjava.client.AbstractDockerClientTest;
+import org.testng.ITestResult;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
+import static com.github.dockerjava.api.model.AccessMode.ro;
+import static com.github.dockerjava.api.model.Capability.MKNOD;
+import static com.github.dockerjava.api.model.Capability.NET_ADMIN;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.hasSize;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.isEmptyString;
+import static org.hamcrest.Matchers.not;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.hamcrest.Matchers.startsWith;
@Test(groups = "integration")
public class StartContainerCmdImplTest extends AbstractDockerClientTest {
@@ -189,9 +188,9 @@ public void startContainerWithPortBindings() throws DockerException {
ExposedPort tcp23 = ExposedPort.tcp(23);
Ports portBindings = new Ports();
- portBindings.bind(tcp22, Ports.binding(11022));
- portBindings.bind(tcp23, Ports.binding(11023));
- portBindings.bind(tcp23, Ports.binding(11024));
+ portBindings.bind(tcp22, Ports.binding("11022"));
+ portBindings.bind(tcp23, Ports.binding("11023"));
+ portBindings.bind(tcp23, Ports.binding("11024"));
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true")
.withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec();
@@ -209,13 +208,13 @@ public void startContainerWithPortBindings() throws DockerException {
assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp22)[0],
- is(equalTo(Ports.binding(11022))));
+ is(equalTo(Ports.binding("11022"))));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[0],
- is(equalTo(Ports.binding(11023))));
+ is(equalTo(Ports.binding("11023"))));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[1],
- is(equalTo(Ports.binding(11024))));
+ is(equalTo(Ports.binding("11024"))));
}
@@ -243,10 +242,10 @@ public void startContainerWithRandomPortBindings() throws DockerException {
assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23));
assertThat(inspectContainerResponse.getNetworkSettings().getPorts().getBindings().get(tcp22)[0].getHostPort(),
- is(not(equalTo(tcp22.getPort()))));
+ is(not(equalTo(String.valueOf(tcp22.getPort())))));
assertThat(inspectContainerResponse.getNetworkSettings().getPorts().getBindings().get(tcp23)[0].getHostPort(),
- is(not(equalTo(tcp23.getPort()))));
+ is(not(equalTo(String.valueOf(tcp23.getPort())))));
}
@@ -257,8 +256,8 @@ public void startContainerWithConflictingPortBindings() throws DockerException {
ExposedPort tcp23 = ExposedPort.tcp(23);
Ports portBindings = new Ports();
- portBindings.bind(tcp22, Ports.binding(11022));
- portBindings.bind(tcp23, Ports.binding(11022));
+ portBindings.bind(tcp22, Ports.binding("11022"));
+ portBindings.bind(tcp23, Ports.binding("11022"));
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true")
.withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec();
diff --git a/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java b/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java
index 25027ae76..e70a3b057 100644
--- a/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java
+++ b/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java
@@ -1,13 +1,12 @@
package com.github.dockerjava.core.util;
-import com.github.dockerjava.core.util.FiltersBuilder;
import com.google.common.collect.Maps;
-
import org.testng.annotations.Test;
import java.util.Map;
-import static org.testng.Assert.*;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotEquals;
/**
* @author Vincent Latombe
diff --git a/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java
index 1299cf6ae..2f9ac934c 100644
--- a/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java
+++ b/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java
@@ -255,7 +255,7 @@ public void testBuildFromPrivateRegistry() throws Exception {
CreateContainerResponse testregistry = dockerClient
.createContainerCmd("testregistry:2")
.withName("registry")
- .withPortBindings(new PortBinding(new Ports.Binding(5000), ExposedPort.tcp(5000)))
+ .withPortBindings(new PortBinding(Ports.Binding.forPort("5000"), ExposedPort.tcp(5000)))
.withEnv("REGISTRY_AUTH=htpasswd", "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm",
"REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd", "REGISTRY_LOG_LEVEL=debug",
"REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt", "REGISTRY_HTTP_TLS_KEY=/certs/domain.key")
diff --git a/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java
index 02c5cc54e..0daf4fb46 100644
--- a/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java
+++ b/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java
@@ -1,33 +1,5 @@
package com.github.dockerjava.netty.exec;
-import static com.github.dockerjava.api.model.Capability.MKNOD;
-import static com.github.dockerjava.api.model.Capability.NET_ADMIN;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.contains;
-import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.hamcrest.Matchers.containsString;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.hasItemInArray;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.isEmptyString;
-import static org.hamcrest.Matchers.not;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.hamcrest.Matchers.startsWith;
-
-import java.lang.reflect.Method;
-import java.security.SecureRandom;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import org.testng.ITestResult;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
import com.github.dockerjava.api.command.CreateContainerResponse;
import com.github.dockerjava.api.command.InspectContainerResponse;
import com.github.dockerjava.api.exception.ConflictException;
@@ -43,6 +15,33 @@
import com.github.dockerjava.api.model.Volume;
import com.github.dockerjava.api.model.VolumesFrom;
import com.github.dockerjava.netty.AbstractNettyDockerClientTest;
+import org.testng.ITestResult;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Method;
+import java.security.SecureRandom;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import static com.github.dockerjava.api.model.Capability.MKNOD;
+import static com.github.dockerjava.api.model.Capability.NET_ADMIN;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.hamcrest.Matchers.containsString;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.hasItemInArray;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.isEmptyString;
+import static org.hamcrest.Matchers.not;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.hamcrest.Matchers.startsWith;
@Test(groups = "integration")
public class CreateContainerCmdExecTest extends AbstractNettyDockerClientTest {
@@ -352,9 +351,9 @@ public void createContainerWithPortBindings() throws DockerException {
ExposedPort tcp23 = ExposedPort.tcp(23);
Ports portBindings = new Ports();
- portBindings.bind(tcp22, Ports.binding(11022));
- portBindings.bind(tcp23, Ports.binding(11023));
- portBindings.bind(tcp23, Ports.binding(11024));
+ portBindings.bind(tcp22, Ports.binding("11022"));
+ portBindings.bind(tcp23, Ports.binding("11023"));
+ portBindings.bind(tcp23, Ports.binding("11024"));
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true")
.withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec();
@@ -368,13 +367,13 @@ public void createContainerWithPortBindings() throws DockerException {
assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp22)[0],
- is(equalTo(Ports.binding(11022))));
+ is(equalTo(Ports.binding("11022"))));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[0],
- is(equalTo(Ports.binding(11023))));
+ is(equalTo(Ports.binding("11023"))));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[1],
- is(equalTo(Ports.binding(11024))));
+ is(equalTo(Ports.binding("11024"))));
}
diff --git a/src/test/java/com/github/dockerjava/netty/exec/RenameContainerCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/RenameContainerCmdExecTest.java
index c176bc1d6..100a7d772 100644
--- a/src/test/java/com/github/dockerjava/netty/exec/RenameContainerCmdExecTest.java
+++ b/src/test/java/com/github/dockerjava/netty/exec/RenameContainerCmdExecTest.java
@@ -6,12 +6,17 @@
import com.github.dockerjava.api.exception.NotFoundException;
import com.github.dockerjava.netty.AbstractNettyDockerClientTest;
import org.testng.ITestResult;
-import org.testng.annotations.*;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
import java.lang.reflect.Method;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.*;
+import static org.hamcrest.Matchers.isEmptyString;
+import static org.hamcrest.Matchers.not;
@Test(groups = "integration")
public class RenameContainerCmdExecTest extends AbstractNettyDockerClientTest {
diff --git a/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java
index 6c70c1f07..844274887 100644
--- a/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java
+++ b/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java
@@ -1,31 +1,5 @@
package com.github.dockerjava.netty.exec;
-import static com.github.dockerjava.api.model.AccessMode.ro;
-import static com.github.dockerjava.api.model.Capability.MKNOD;
-import static com.github.dockerjava.api.model.Capability.NET_ADMIN;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.contains;
-import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.hasSize;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.isEmptyString;
-import static org.hamcrest.Matchers.not;
-import static org.hamcrest.Matchers.notNullValue;
-import static org.hamcrest.Matchers.startsWith;
-
-import java.lang.reflect.Method;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-
-import org.testng.ITestResult;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.dockerjava.api.command.CreateContainerResponse;
import com.github.dockerjava.api.command.InspectContainerResponse;
@@ -43,6 +17,31 @@
import com.github.dockerjava.api.model.VolumesFrom;
import com.github.dockerjava.core.command.WaitContainerResultCallback;
import com.github.dockerjava.netty.AbstractNettyDockerClientTest;
+import org.testng.ITestResult;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.AfterTest;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.BeforeTest;
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
+import static com.github.dockerjava.api.model.AccessMode.ro;
+import static com.github.dockerjava.api.model.Capability.MKNOD;
+import static com.github.dockerjava.api.model.Capability.NET_ADMIN;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.hasSize;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.isEmptyString;
+import static org.hamcrest.Matchers.not;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.hamcrest.Matchers.startsWith;
@Test(groups = "integration")
public class StartContainerCmdExecTest extends AbstractNettyDockerClientTest {
@@ -192,9 +191,9 @@ public void startContainerWithPortBindings() throws DockerException {
ExposedPort tcp23 = ExposedPort.tcp(23);
Ports portBindings = new Ports();
- portBindings.bind(tcp22, Ports.binding(11022));
- portBindings.bind(tcp23, Ports.binding(11023));
- portBindings.bind(tcp23, Ports.binding(11024));
+ portBindings.bind(tcp22, Ports.binding("11022"));
+ portBindings.bind(tcp23, Ports.binding("11023"));
+ portBindings.bind(tcp23, Ports.binding("11024"));
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true")
.withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec();
@@ -212,13 +211,13 @@ public void startContainerWithPortBindings() throws DockerException {
assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp22)[0],
- is(equalTo(Ports.binding(11022))));
+ is(equalTo(Ports.binding("11022"))));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[0],
- is(equalTo(Ports.binding(11023))));
+ is(equalTo(Ports.binding("11023"))));
assertThat(inspectContainerResponse.getHostConfig().getPortBindings().getBindings().get(tcp23)[1],
- is(equalTo(Ports.binding(11024))));
+ is(equalTo(Ports.binding("11024"))));
}
@@ -246,10 +245,10 @@ public void startContainerWithRandomPortBindings() throws DockerException {
assertThat(Arrays.asList(inspectContainerResponse.getConfig().getExposedPorts()), contains(tcp22, tcp23));
assertThat(inspectContainerResponse.getNetworkSettings().getPorts().getBindings().get(tcp22)[0].getHostPort(),
- is(not(equalTo(tcp22.getPort()))));
+ is(not(equalTo(String.valueOf(tcp22.getPort())))));
assertThat(inspectContainerResponse.getNetworkSettings().getPorts().getBindings().get(tcp23)[0].getHostPort(),
- is(not(equalTo(tcp23.getPort()))));
+ is(not(equalTo(String.valueOf(tcp23.getPort())))));
}
@@ -260,8 +259,8 @@ public void startContainerWithConflictingPortBindings() throws DockerException {
ExposedPort tcp23 = ExposedPort.tcp(23);
Ports portBindings = new Ports();
- portBindings.bind(tcp22, Ports.binding(11022));
- portBindings.bind(tcp23, Ports.binding(11022));
+ portBindings.bind(tcp22, Ports.binding("11022"));
+ portBindings.bind(tcp23, Ports.binding("11022"));
CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("true")
.withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).exec();