From d0cde8e79f20d6c21b526222e62f709c3f86e55f Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 16:11:36 +0300 Subject: [PATCH 001/878] Checkstyle: not tabs. --- .../api/command/ExecCreateCmdResponse.java | 4 ++-- .../core/command/ListImagesCmdImpl.java | 4 ++-- .../dockerjava/jaxrs/ListImagesCmdExec.java | 4 ++-- .../github/dockerjava/netty/MediaType.java | 20 +++++++++---------- .../netty/handler/JsonRequestHandler.java | 14 ++++++------- .../checkstyle/checkstyle-config.xml | 8 ++++++++ 6 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/github/dockerjava/api/command/ExecCreateCmdResponse.java b/src/main/java/com/github/dockerjava/api/command/ExecCreateCmdResponse.java index 08751f3e2..9c13912fc 100644 --- a/src/main/java/com/github/dockerjava/api/command/ExecCreateCmdResponse.java +++ b/src/main/java/com/github/dockerjava/api/command/ExecCreateCmdResponse.java @@ -15,9 +15,9 @@ public class ExecCreateCmdResponse { public String getId() { return id; } - + @Override public String toString() { - return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE); + return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE); } } diff --git a/src/main/java/com/github/dockerjava/core/command/ListImagesCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/ListImagesCmdImpl.java index d726ca7ce..1033b43ec 100644 --- a/src/main/java/com/github/dockerjava/core/command/ListImagesCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/ListImagesCmdImpl.java @@ -17,9 +17,9 @@ */ public class ListImagesCmdImpl extends AbstrDockerCmd> implements ListImagesCmd { - private String imageNameFilter; + private String imageNameFilter; - private Boolean showAll = false; + private Boolean showAll = false; private FiltersBuilder filters = new FiltersBuilder(); diff --git a/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java index 1e7acfc33..3d6320151 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/ListImagesCmdExec.java @@ -31,11 +31,11 @@ protected List execute(ListImagesCmd command) { webTarget = booleanQueryParam(webTarget, "all", command.hasShowAllEnabled()); if (command.getFilters() != null && !command.getFilters().isEmpty()) { - webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); + webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); } if (command.getImageNameFilter() != null) { - webTarget = webTarget.queryParam("filter", urlPathSegmentEscaper().escape(command.getImageNameFilter())); + webTarget = webTarget.queryParam("filter", urlPathSegmentEscaper().escape(command.getImageNameFilter())); } LOGGER.trace("GET: {}", webTarget); diff --git a/src/main/java/com/github/dockerjava/netty/MediaType.java b/src/main/java/com/github/dockerjava/netty/MediaType.java index a7738604a..50732aeb8 100644 --- a/src/main/java/com/github/dockerjava/netty/MediaType.java +++ b/src/main/java/com/github/dockerjava/netty/MediaType.java @@ -8,17 +8,17 @@ */ public enum MediaType { - APPLICATION_JSON("application/json"), - APPLICATION_OCTET_STREAM("application/octet-stream"), - APPLICATION_X_TAR("application/x-tar"); + APPLICATION_JSON("application/json"), + APPLICATION_OCTET_STREAM("application/octet-stream"), + APPLICATION_X_TAR("application/x-tar"); - private String mediaType; + private String mediaType; - private MediaType(String mediaType) { - this.mediaType = mediaType; - } + private MediaType(String mediaType) { + this.mediaType = mediaType; + } - public String getMediaType() { - return mediaType; - } + public String getMediaType() { + return mediaType; + } } diff --git a/src/main/java/com/github/dockerjava/netty/handler/JsonRequestHandler.java b/src/main/java/com/github/dockerjava/netty/handler/JsonRequestHandler.java index 54ffb2f96..cb6f60678 100644 --- a/src/main/java/com/github/dockerjava/netty/handler/JsonRequestHandler.java +++ b/src/main/java/com/github/dockerjava/netty/handler/JsonRequestHandler.java @@ -11,13 +11,13 @@ * * @author Marcus Linke */ -public class JsonRequestHandler extends MessageToByteEncoder{ +public class JsonRequestHandler extends MessageToByteEncoder { - private ObjectMapper mapper = new ObjectMapper(); + private ObjectMapper mapper = new ObjectMapper(); - @Override - protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception { - byte[] serialized = mapper.writeValueAsBytes(msg); - out.writeBytes(serialized); - } + @Override + protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception { + byte[] serialized = mapper.writeValueAsBytes(msg); + out.writeBytes(serialized); + } } diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index 9f9f7b02b..f65ea846f 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -18,6 +18,14 @@ + + + + + + + + From 2d110ad9ee602e08190c9859fb39334f6907250e Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 16:15:27 +0300 Subject: [PATCH 002/878] Checkstyle: no trailing spaces. --- .../github/dockerjava/api/model/Capability.java | 2 +- .../dockerjava/api/model/InternetProtocol.java | 14 +++++++++----- .../github/dockerjava/api/model/Repository.java | 4 ++-- .../github/dockerjava/core/GoLangFileMatch.java | 6 +++--- .../github/dockerjava/core/KeystoreSSLConfig.java | 2 +- .../java/com/github/dockerjava/core/SSLConfig.java | 2 +- .../dockerjava/core/command/PingCmdImpl.java | 1 - .../connector/ApacheConnectorClientResponse.java | 4 ++-- .../jaxrs/filter/FollowRedirectsFilter.java | 2 +- .../jaxrs/filter/SelectiveLoggingFilter.java | 3 +-- .../resources/checkstyle/checkstyle-config.xml | 7 +++++++ 11 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/github/dockerjava/api/model/Capability.java b/src/main/java/com/github/dockerjava/api/model/Capability.java index b17827553..4757937e3 100644 --- a/src/main/java/com/github/dockerjava/api/model/Capability.java +++ b/src/main/java/com/github/dockerjava/api/model/Capability.java @@ -3,7 +3,7 @@ /** * The Linux capabilities supported by Docker. The list of capabilities is defined in Docker's types.go, {@link #ALL} * was added manually. - * + * * @see http://man7.org/linux/man-pages/man7/capabilities.7.html */ diff --git a/src/main/java/com/github/dockerjava/api/model/InternetProtocol.java b/src/main/java/com/github/dockerjava/api/model/InternetProtocol.java index 65df8cf6f..e3ef2b98c 100644 --- a/src/main/java/com/github/dockerjava/api/model/InternetProtocol.java +++ b/src/main/java/com/github/dockerjava/api/model/InternetProtocol.java @@ -2,15 +2,19 @@ /** * The IP protocols supported by Docker. - * + * * @see #TCP * @see #UDP */ public enum InternetProtocol { - /** The Transmission Control Protocol */ + /** + * The Transmission Control Protocol + */ TCP, - /** The User Datagram Protocol */ + /** + * The User Datagram Protocol + */ UDP; /** @@ -21,7 +25,7 @@ public enum InternetProtocol { /** * Returns a string representation of this {@link InternetProtocol} suitable for inclusion in a JSON message. The * output is the lowercased name of the Protocol, e.g. tcp. - * + * * @return a string representation of this {@link InternetProtocol} */ @Override @@ -31,7 +35,7 @@ public String toString() { /** * Parses a string to an {@link InternetProtocol}. - * + * * @param serialized * the protocol, e.g. tcp or TCP * @return an {@link InternetProtocol} described by the string diff --git a/src/main/java/com/github/dockerjava/api/model/Repository.java b/src/main/java/com/github/dockerjava/api/model/Repository.java index 1c5b641ba..3055c8980 100644 --- a/src/main/java/com/github/dockerjava/api/model/Repository.java +++ b/src/main/java/com/github/dockerjava/api/model/Repository.java @@ -13,7 +13,7 @@ public class Repository { /** * Name may be eg. 'busybox' or '10.0.0.1:5000/fred' - * + * * @param name * Repository name */ @@ -23,7 +23,7 @@ public Repository(String name) { /** * Return the URL portion (repository). Note that this might not actually BE a repository location. - * + * * @return * @throws java.net.MalformedURLException */ diff --git a/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java b/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java index ef798d68d..2f29789ea 100644 --- a/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java +++ b/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java @@ -26,16 +26,16 @@ * character class (must be non-empty) * c matches character c (c != '*', '?', '\\', '[') * '\\' c matches character c - * + * * character-range: * c matches character c (c != '\\', '-', ']') * '\\' c matches character c * lo '-' hi matches character c for lo <= c <= hi - * + * * Match requires pattern to match all of name, not just a substring. * The only possible returned error is ErrBadPattern, when pattern * is malformed. - * + * * On Windows, escaping is disabled. Instead, '\\' is treated as * path separator. * diff --git a/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java b/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java index dc9defbfb..5e62f4d78 100644 --- a/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java +++ b/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java @@ -65,7 +65,7 @@ public KeystoreSSLConfig(File pfxFile, String password) throws KeyStoreException /** * Get the SSL Context out of the keystore. - * + * * @return java SSLContext * @throws KeyManagementException * @throws UnrecoverableKeyException diff --git a/src/main/java/com/github/dockerjava/core/SSLConfig.java b/src/main/java/com/github/dockerjava/core/SSLConfig.java index 6c7e5c353..0346aa610 100644 --- a/src/main/java/com/github/dockerjava/core/SSLConfig.java +++ b/src/main/java/com/github/dockerjava/core/SSLConfig.java @@ -14,7 +14,7 @@ public interface SSLConfig { /** * Get the SSL Context, from wherever it comes (file, keystore). - * + * * @return an SSL context. */ SSLContext getSSLContext() throws KeyManagementException, UnrecoverableKeyException, NoSuchAlgorithmException, diff --git a/src/main/java/com/github/dockerjava/core/command/PingCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/PingCmdImpl.java index c9118a095..39c9666d7 100644 --- a/src/main/java/com/github/dockerjava/core/command/PingCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/PingCmdImpl.java @@ -4,7 +4,6 @@ /** * Ping the Docker server - * */ public class PingCmdImpl extends AbstrDockerCmd implements PingCmd { diff --git a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnectorClientResponse.java b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnectorClientResponse.java index d358f574a..fead3575c 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnectorClientResponse.java +++ b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnectorClientResponse.java @@ -11,9 +11,9 @@ /** * Fix for https://github.com/docker-java/docker-java/issues/196 - * + * * https://java.net/jira/browse/JERSEY-2852 - * + * * @author Marcus Linke * */ diff --git a/src/main/java/com/github/dockerjava/jaxrs/filter/FollowRedirectsFilter.java b/src/main/java/com/github/dockerjava/jaxrs/filter/FollowRedirectsFilter.java index be079d430..cb5cd0687 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/filter/FollowRedirectsFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/filter/FollowRedirectsFilter.java @@ -12,7 +12,7 @@ * Default implementation of RedirectStrategy honors the restrictions on automatic redirection of entity enclosing * methods such as POST and PUT imposed by the HTTP specification. 302 Moved Temporarily, 301 Moved Permanently and 307 * Temporary Redirect status codes will result in an automatic redirect of HEAD and GET methods only. - * + * * {@link org.apache.http.impl.client.DefaultRedirectStrategy} * * This filter allows arbitrary redirection for other methods. diff --git a/src/main/java/com/github/dockerjava/jaxrs/filter/SelectiveLoggingFilter.java b/src/main/java/com/github/dockerjava/jaxrs/filter/SelectiveLoggingFilter.java index 847033fd5..2251d8fad 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/filter/SelectiveLoggingFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/filter/SelectiveLoggingFilter.java @@ -13,9 +13,8 @@ /** * A version of the logging filter that will avoid trying to log entities which can cause issues with the console. - * - * @author sfitts * + * @author sfitts */ public class SelectiveLoggingFilter extends LoggingFilter { diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index f65ea846f..0b42e4d05 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -26,6 +26,13 @@ + + + + + + + From 3dcb1439957e51e669f8a2ed476aad612ba47e6f Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 16:35:38 +0300 Subject: [PATCH 003/878] Checkstyle: fix naming convention. --- .../com/github/dockerjava/api/model/Info.java | 36 +++++++++---------- .../github/dockerjava/api/model/Ports.java | 4 +-- .../dockerjava/core/DockerClientConfig.java | 6 ++-- .../github/dockerjava/core/NameParser.java | 3 +- .../dockerjava/core/util/FiltersEncoder.java | 2 +- .../jaxrs/connector/ApacheConnector.java | 10 +++--- .../jaxrs/filter/LoggingFilter.java | 10 +++--- .../github/dockerjava/netty/WebTarget.java | 2 +- .../dockerjava/api/model/BindingTest.java | 8 ++--- .../api/model/Ports_addBindingsTest.java | 4 +-- .../command/CreateContainerCmdImplTest.java | 12 +++---- .../command/StartContainerCmdImplTest.java | 20 +++++------ .../exec/CreateContainerCmdExecTest.java | 14 ++++---- .../netty/exec/StartContainerCmdExecTest.java | 22 ++++++------ .../checkstyle/checkstyle-config.xml | 31 ++++++++++++++++ 15 files changed, 106 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/github/dockerjava/api/model/Info.java b/src/main/java/com/github/dockerjava/api/model/Info.java index d038df878..0e4816cce 100644 --- a/src/main/java/com/github/dockerjava/api/model/Info.java +++ b/src/main/java/com/github/dockerjava/api/model/Info.java @@ -25,7 +25,7 @@ public class Info { private Boolean debug; @JsonProperty("DockerRootDir") - private String DockerRootDir; + private String dockerRootDir; @JsonProperty("Driver") private String driver; @@ -37,16 +37,16 @@ public class Info { private String executionDriver; @JsonProperty("ID") - private String ID; + private String id; @JsonProperty("IPv4Forwarding") - private Boolean IPv4Forwarding; + private Boolean ipv4Forwarding; @JsonProperty("Images") private Integer images; @JsonProperty("IndexServerAddress") - private String IndexServerAddress; + private String indexServerAddress; @JsonProperty("InitPath") private String initPath; @@ -58,7 +58,7 @@ public class Info { private String kernelVersion; @JsonProperty("Labels") - private String[] Labels; + private String[] labels; @JsonProperty("MemoryLimit") private Boolean memoryLimit; @@ -70,19 +70,19 @@ public class Info { private String name; @JsonProperty("NCPU") - private Integer NCPU; + private Integer ncpu; @JsonProperty("NEventsListener") private Long nEventListener; @JsonProperty("NFd") - private Integer NFd; + private Integer nfd; @JsonProperty("NGoroutines") - private Integer NGoroutines; + private Integer nGoroutines; @JsonProperty("OperatingSystem") - private String OperatingSystem; + private String operatingSystem; @JsonProperty("Sockets") private String[] sockets; @@ -99,7 +99,7 @@ public Integer getContainers() { } public String getDockerRootDir() { - return DockerRootDir; + return dockerRootDir; } public String getDriver() { @@ -115,15 +115,15 @@ public Integer getImages() { } public String getID() { - return ID; + return id; } public Boolean getIPv4Forwarding() { - return IPv4Forwarding; + return ipv4Forwarding; } public String getIndexServerAddress() { - return IndexServerAddress; + return indexServerAddress; } public String getInitPath() { @@ -139,7 +139,7 @@ public String getKernelVersion() { } public String[] getLabels() { - return Labels; + return labels; } public String[] getSockets() { @@ -163,19 +163,19 @@ public String getName() { } public Integer getNCPU() { - return NCPU; + return ncpu; } public Integer getNFd() { - return NFd; + return nfd; } public Integer getNGoroutines() { - return NGoroutines; + return nGoroutines; } public String getOperatingSystem() { - return OperatingSystem; + return operatingSystem; } public Boolean getSwapLimit() { 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 0ff5762e6..780e5911c 100644 --- a/src/main/java/com/github/dockerjava/api/model/Ports.java +++ b/src/main/java/com/github/dockerjava/api/model/Ports.java @@ -112,14 +112,14 @@ 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, Integer 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) { + public static Binding binding(Integer hostPort) { return new Binding(hostPort); } diff --git a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java index fa5c77e6a..0a1868922 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java @@ -270,10 +270,10 @@ public AuthConfig effectiveAuthConfig(String imageName) { authConfig = authConfigFile.resolveAuthConfig(hostnameReposName.hostname); } - AuthConfig _authConfig = getAuthConfig(); + AuthConfig otherAuthConfig = getAuthConfig(); - if (_authConfig != null) - authConfig = _authConfig; + if (otherAuthConfig != null) + authConfig = otherAuthConfig; return authConfig; } diff --git a/src/main/java/com/github/dockerjava/core/NameParser.java b/src/main/java/com/github/dockerjava/core/NameParser.java index ba2948fb8..3c58eb331 100644 --- a/src/main/java/com/github/dockerjava/core/NameParser.java +++ b/src/main/java/com/github/dockerjava/core/NameParser.java @@ -13,13 +13,14 @@ import com.github.dockerjava.core.exception.InvalidRepositoryNameException; public class NameParser { - + //CHECKSTYLE:OFF private static final int RepositoryNameTotalLengthMax = 255; private static final Pattern RepositoryNameComponentRegexp = Pattern.compile("[a-z0-9]+(?:[._-][a-z0-9]+)*"); private static final Pattern RepositoryNameComponentAnchoredRegexp = Pattern.compile("^" + RepositoryNameComponentRegexp.pattern() + "$"); + //CHECKSTYLE:ON // private static final Pattern RepositoryNameRegexp = Pattern.compile("(?:" + // RepositoryNameComponentRegexp.pattern() diff --git a/src/main/java/com/github/dockerjava/core/util/FiltersEncoder.java b/src/main/java/com/github/dockerjava/core/util/FiltersEncoder.java index 75f9d48c2..164528a8c 100644 --- a/src/main/java/com/github/dockerjava/core/util/FiltersEncoder.java +++ b/src/main/java/com/github/dockerjava/core/util/FiltersEncoder.java @@ -17,7 +17,7 @@ */ public class FiltersEncoder { - private static ObjectMapper OBJECT_MAPPER = new JacksonJaxbJsonProvider().locateMapper(Map.class, + private static final ObjectMapper OBJECT_MAPPER = new JacksonJaxbJsonProvider().locateMapper(Map.class, MediaType.APPLICATION_JSON_TYPE); public static String jsonEncode(Map> filters) { diff --git a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java index f7c830902..cfbabb513 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java +++ b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java @@ -184,13 +184,13 @@ class ApacheConnector implements Connector { private final static Logger LOGGER = Logger.getLogger(ApacheConnector.class.getName()); - private static final VersionInfo vi; + private static final VersionInfo VERSION_INFO; - private static final String release; + private static final String RELEASE; static { - vi = VersionInfo.loadVersionInfo("org.apache.http.client", HttpClientBuilder.class.getClassLoader()); - release = (vi != null) ? vi.getRelease() : VersionInfo.UNAVAILABLE; + VERSION_INFO = VersionInfo.loadVersionInfo("org.apache.http.client", HttpClientBuilder.class.getClassLoader()); + RELEASE = (VERSION_INFO != null) ? VERSION_INFO.getRelease() : VersionInfo.UNAVAILABLE; } private final CloseableHttpClient client; @@ -507,7 +507,7 @@ public void run() { @Override public String getName() { - return "Apache HttpClient " + release; + return "Apache HttpClient " + RELEASE; } @Override diff --git a/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java b/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java index 6dbea0045..ccd6500d1 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java @@ -109,7 +109,7 @@ public int compare(final Map.Entry> o1, final Map.Entry queryParams = new HashMap(); - private static String PATH_SEPARATOR = "/"; + private static final String PATH_SEPARATOR = "/"; public WebTarget(ChannelProvider channelProvider) { this.channelProvider = channelProvider; 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 3309a8904..23e793cf8 100644 --- a/src/test/java/com/github/dockerjava/api/model/BindingTest.java +++ b/src/test/java/com/github/dockerjava/api/model/BindingTest.java @@ -10,22 +10,22 @@ 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 public void parseIPOnly() { - assertEquals(Binding.parse("127.0.0.1"), Ports.Binding("127.0.0.1", null)); + assertEquals(Binding.parse("127.0.0.1"), Ports.binding("127.0.0.1", null)); } @Test public void parseEmptyString() { - assertEquals(Binding.parse(""), Ports.Binding(null, null)); + assertEquals(Binding.parse(""), Ports.binding(null, null)); } @Test(expectedExceptions = IllegalArgumentException.class, expectedExceptionsMessageRegExp = "Error parsing Binding 'nonsense'") 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 da127b122..05a2b3f01 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 @@ -19,9 +19,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/command/CreateContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java index ce2771652..3f989c114 100644 --- a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java @@ -363,9 +363,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(); @@ -379,13 +379,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/StartContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java index b43eb0ff2..ce060f4bb 100644 --- a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java @@ -186,9 +186,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(); @@ -206,13 +206,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)))); } @@ -223,8 +223,8 @@ public void startContainerWithRandomPortBindings() throws DockerException { ExposedPort tcp23 = ExposedPort.tcp(23); Ports portBindings = new Ports(); - portBindings.bind(tcp22, Ports.Binding(null)); - portBindings.bind(tcp23, Ports.Binding(null)); + portBindings.bind(tcp22, Ports.binding(null)); + portBindings.bind(tcp23, Ports.binding(null)); CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("sleep", "9999") .withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).withPublishAllPorts(true).exec(); @@ -254,8 +254,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/netty/exec/CreateContainerCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java index 9a37ef01a..a29b26d7b 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java @@ -32,7 +32,6 @@ import com.github.dockerjava.api.command.InspectContainerResponse; import com.github.dockerjava.api.exception.ConflictException; import com.github.dockerjava.api.exception.DockerException; -import com.github.dockerjava.api.model.AccessMode; import com.github.dockerjava.api.model.Bind; import com.github.dockerjava.api.model.Device; import com.github.dockerjava.api.model.ExposedPort; @@ -42,7 +41,6 @@ import com.github.dockerjava.api.model.RestartPolicy; import com.github.dockerjava.api.model.Ulimit; import com.github.dockerjava.api.model.Volume; -import com.github.dockerjava.api.model.VolumeRW; import com.github.dockerjava.api.model.VolumesFrom; import com.github.dockerjava.netty.AbstractNettyDockerClientTest; @@ -358,9 +356,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(); @@ -374,13 +372,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/StartContainerCmdExecTest.java b/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java index d743935eb..8af196a60 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java @@ -31,7 +31,6 @@ import com.github.dockerjava.api.exception.DockerException; import com.github.dockerjava.api.exception.InternalServerErrorException; import com.github.dockerjava.api.exception.NotFoundException; -import com.github.dockerjava.api.model.AccessMode; import com.github.dockerjava.api.model.Bind; import com.github.dockerjava.api.model.Device; import com.github.dockerjava.api.model.ExposedPort; @@ -39,7 +38,6 @@ import com.github.dockerjava.api.model.Ports; import com.github.dockerjava.api.model.RestartPolicy; import com.github.dockerjava.api.model.Volume; -import com.github.dockerjava.api.model.VolumeRW; import com.github.dockerjava.api.model.VolumesFrom; import com.github.dockerjava.core.command.WaitContainerResultCallback; import com.github.dockerjava.netty.AbstractNettyDockerClientTest; @@ -189,9 +187,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 +207,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)))); } @@ -226,8 +224,8 @@ public void startContainerWithRandomPortBindings() throws DockerException { ExposedPort tcp23 = ExposedPort.tcp(23); Ports portBindings = new Ports(); - portBindings.bind(tcp22, Ports.Binding(null)); - portBindings.bind(tcp23, Ports.Binding(null)); + portBindings.bind(tcp22, Ports.binding(null)); + portBindings.bind(tcp23, Ports.binding(null)); CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd("sleep", "9999") .withExposedPorts(tcp22, tcp23).withPortBindings(portBindings).withPublishAllPorts(true).exec(); @@ -257,8 +255,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/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index 0b42e4d05..c31d642ef 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -32,8 +32,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 5bcb8f846edc81fc97b5d7d19c1c6d513c9c80e3 Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 16:49:45 +0300 Subject: [PATCH 004/878] Checkstyle: line length fix + other. --- .../dockerjava/api/command/AuthCmd.java | 3 +- .../checkstyle/checkstyle-config.xml | 44 ++++++++++++++++++- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/dockerjava/api/command/AuthCmd.java b/src/main/java/com/github/dockerjava/api/command/AuthCmd.java index 8402ee533..75e5801ff 100644 --- a/src/main/java/com/github/dockerjava/api/command/AuthCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/AuthCmd.java @@ -21,7 +21,8 @@ public interface AuthCmd extends SyncDockerCmd { /** * @return The status. Based on it's value you may mean you need to authorise your account, e.g.: - * "Account created. Please see the documentation of the registry http://localhost:5000/v1/ for instructions how to activate it." + * "Account created. Please see the documentation of the registry http://localhost:5000/v1/ + * for instructions how to activate it." * @throws UnauthorizedException * If you're not authorised (e.g. bad password). */ diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index c31d642ef..74a724eba 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -64,10 +64,52 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From c76a187bee6bc9d3d3b322914356b8aa13007f0c Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 17:07:14 +0300 Subject: [PATCH 005/878] Checkstyle: whitespace checks. --- .../java/com/github/dockerjava/api/model/Ports.java | 2 +- .../github/dockerjava/core/DockerClientConfig.java | 2 +- .../github/dockerjava/core/KeystoreSSLConfig.java | 2 +- .../dockerjava/core/dockerfile/Dockerfile.java | 2 +- .../dockerjava/core/util/CertificateUtils.java | 2 +- src/test/resources/checkstyle/checkstyle-config.xml | 13 ++++++++----- 6 files changed, 13 insertions(+), 10 deletions(-) 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 780e5911c..6132e4647 100644 --- a/src/main/java/com/github/dockerjava/api/model/Ports.java +++ b/src/main/java/com/github/dockerjava/api/model/Ports.java @@ -70,7 +70,7 @@ public void bind(ExposedPort exposedPort, Binding binding) { if (binding == null) { ports.put(exposedPort, null); } else { - ports.put(exposedPort, new Binding[] { binding }); + ports.put(exposedPort, new Binding[]{binding}); } } } diff --git a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java index 0a1868922..8c363321c 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java @@ -178,7 +178,7 @@ private static Properties overrideDockerPropertiesWithSystemProperties(Propertie Properties overriddenProperties = new Properties(); overriddenProperties.putAll(p); - for (String key : new String[] { DOCKER_IO_URL_PROPERTY, DOCKER_IO_VERSION_PROPERTY, + for (String key : new String[]{DOCKER_IO_URL_PROPERTY, DOCKER_IO_VERSION_PROPERTY, DOCKER_IO_USERNAME_PROPERTY, DOCKER_IO_PASSWORD_PROPERTY, DOCKER_IO_EMAIL_PROPERTY, DOCKER_IO_SERVER_ADDRESS_PROPERTY, DOCKER_IO_DOCKER_CERT_PATH_PROPERTY, DOCKER_IO_DOCKER_CFG_PATH_PROPERTY, }) { diff --git a/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java b/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java index 5e62f4d78..a552b3775 100644 --- a/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java +++ b/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java @@ -87,7 +87,7 @@ public SSLContext getSSLContext() throws KeyManagementException, UnrecoverableKe final KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory .getDefaultAlgorithm()); keyManagerFactory.init(keystore, keystorePassword.toCharArray()); - context.init(keyManagerFactory.getKeyManagers(), new TrustManager[] { new X509TrustManager() { + context.init(keyManagerFactory.getKeyManagers(), new TrustManager[]{new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[] {}; diff --git a/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java b/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java index 077aff4bf..d7173d4d8 100644 --- a/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java +++ b/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java @@ -147,7 +147,7 @@ public int read() throws IOException { } @Override - public int read(byte [] buff, int offset, int len) throws IOException { + public int read(byte[] buff, int offset, int len) throws IOException { return tarInputStream.read(buff, offset, len); } diff --git a/src/main/java/com/github/dockerjava/core/util/CertificateUtils.java b/src/main/java/com/github/dockerjava/core/util/CertificateUtils.java index 19f142593..65e6544f1 100644 --- a/src/main/java/com/github/dockerjava/core/util/CertificateUtils.java +++ b/src/main/java/com/github/dockerjava/core/util/CertificateUtils.java @@ -31,7 +31,7 @@ private CertificateUtils() { } public static boolean verifyCertificatesExist(String dockerCertPath) { - String[] files = { "ca.pem", "cert.pem", "key.pem" }; + String[] files = {"ca.pem", "cert.pem", "key.pem"}; for (String file : files) { File path = new File(dockerCertPath, file); return path.exists(); diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index 74a724eba..1f9e606eb 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -98,17 +98,20 @@ - + + - - - + + + + - + + From 01f82d2c2c4ff93a7c5d0fcf22750f615f7e46eb Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 18:36:39 +0300 Subject: [PATCH 006/878] Checkstyle: redundant lines. Disabled for now. --- .../api/command/AsyncDockerCmd.java | 2 +- .../api/command/AttachContainerCmd.java | 30 +++++++++---------- .../checkstyle/checkstyle-config.xml | 4 +++ 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/github/dockerjava/api/command/AsyncDockerCmd.java b/src/main/java/com/github/dockerjava/api/command/AsyncDockerCmd.java index 221d3d165..3218a8419 100644 --- a/src/main/java/com/github/dockerjava/api/command/AsyncDockerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/AsyncDockerCmd.java @@ -13,6 +13,6 @@ */ public interface AsyncDockerCmd, A_RES_T> extends DockerCmd { - public > T exec(T resultCallback); + > T exec(T resultCallback); } diff --git a/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java index 6326fa13b..84f063d7e 100644 --- a/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java @@ -26,46 +26,46 @@ public interface AttachContainerCmd extends AsyncDockerCmd { @CheckForNull - public String getContainerId(); + String getContainerId(); @CheckForNull - public Boolean hasLogsEnabled(); + Boolean hasLogsEnabled(); @CheckForNull - public Boolean hasFollowStreamEnabled(); + Boolean hasFollowStreamEnabled(); @CheckForNull - public Boolean hasTimestampsEnabled(); + Boolean hasTimestampsEnabled(); @CheckForNull - public Boolean hasStdoutEnabled(); + Boolean hasStdoutEnabled(); @CheckForNull - public Boolean hasStderrEnabled(); + Boolean hasStderrEnabled(); @CheckForNull - public InputStream getStdin(); + InputStream getStdin(); - public AttachContainerCmd withContainerId(@Nonnull String containerId); + AttachContainerCmd withContainerId(@Nonnull String containerId); /** * Following the stream means the resulting {@link InputStream} returned by {@link #exec()} reads infinitely. So a * {@link InputStream#read()} MAY BLOCK FOREVER as long as no data is streamed from the docker host to * {@link DockerClient}! */ - public AttachContainerCmd withFollowStream(Boolean followStream); + AttachContainerCmd withFollowStream(Boolean followStream); - public AttachContainerCmd withTimestamps(Boolean timestamps); + AttachContainerCmd withTimestamps(Boolean timestamps); - public AttachContainerCmd withStdOut(Boolean stdout); + AttachContainerCmd withStdOut(Boolean stdout); - public AttachContainerCmd withStdErr(Boolean stderr); + AttachContainerCmd withStdErr(Boolean stderr); - public AttachContainerCmd withStdIn(InputStream stdin); + AttachContainerCmd withStdIn(InputStream stdin); - public AttachContainerCmd withLogs(Boolean logs); + AttachContainerCmd withLogs(Boolean logs); - public static interface Exec extends DockerCmdAsyncExec { + interface Exec extends DockerCmdAsyncExec { } } diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index 1f9e606eb..0a0969513 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -113,6 +113,10 @@ + + + + From a2c6773a037fd86ae8bb5ad0f5cd5bce381d597b Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 18:37:12 +0300 Subject: [PATCH 007/878] Checkstyle: fixed ModifierOrder. ModifierOrder: 'static' modifier out of order with the JLS suggestions. --- .../github/dockerjava/core/async/ResultCallbackTemplate.java | 2 +- .../java/com/github/dockerjava/core/command/AbstrDockerCmd.java | 2 +- .../dockerjava/core/command/AttachContainerResultCallback.java | 2 +- .../dockerjava/core/command/BuildImageResultCallback.java | 2 +- .../github/dockerjava/core/command/EventsResultCallback.java | 2 +- .../github/dockerjava/core/command/ExecStartResultCallback.java | 2 +- .../dockerjava/core/command/LogContainerResultCallback.java | 2 +- .../github/dockerjava/core/command/PullImageResultCallback.java | 2 +- .../github/dockerjava/core/command/PushImageResultCallback.java | 2 +- .../dockerjava/core/command/WaitContainerResultCallback.java | 2 +- .../com/github/dockerjava/jaxrs/connector/ApacheConnector.java | 2 +- src/test/resources/checkstyle/checkstyle-config.xml | 2 ++ 12 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java b/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java index 5e63f2b5f..f87c0e525 100644 --- a/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java +++ b/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java @@ -25,7 +25,7 @@ public abstract class ResultCallbackTemplate, A_RES_T> implements ResultCallback { - private final static Logger LOGGER = LoggerFactory.getLogger(ResultCallbackTemplate.class); + private static final Logger LOGGER = LoggerFactory.getLogger(ResultCallbackTemplate.class); private final CountDownLatch started = new CountDownLatch(1); diff --git a/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java b/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java index 0c7877503..9e1e775c5 100644 --- a/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java +++ b/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java @@ -19,7 +19,7 @@ public abstract class AbstrDockerCmd, RES_T> implements SyncDockerCmd { - private final static Logger LOGGER = LoggerFactory.getLogger(AbstrDockerCmd.class); + private static final Logger LOGGER = LoggerFactory.getLogger(AbstrDockerCmd.class); protected DockerCmdSyncExec execution; diff --git a/src/main/java/com/github/dockerjava/core/command/AttachContainerResultCallback.java b/src/main/java/com/github/dockerjava/core/command/AttachContainerResultCallback.java index f16b20301..bddddfd4f 100644 --- a/src/main/java/com/github/dockerjava/core/command/AttachContainerResultCallback.java +++ b/src/main/java/com/github/dockerjava/core/command/AttachContainerResultCallback.java @@ -16,7 +16,7 @@ */ public class AttachContainerResultCallback extends ResultCallbackTemplate { - private final static Logger LOGGER = LoggerFactory.getLogger(AttachContainerResultCallback.class); + private static final Logger LOGGER = LoggerFactory.getLogger(AttachContainerResultCallback.class); @Override public void onNext(Frame item) { diff --git a/src/main/java/com/github/dockerjava/core/command/BuildImageResultCallback.java b/src/main/java/com/github/dockerjava/core/command/BuildImageResultCallback.java index 06c6b1e51..1ca276434 100644 --- a/src/main/java/com/github/dockerjava/core/command/BuildImageResultCallback.java +++ b/src/main/java/com/github/dockerjava/core/command/BuildImageResultCallback.java @@ -21,7 +21,7 @@ */ public class BuildImageResultCallback extends ResultCallbackTemplate { - private final static Logger LOGGER = LoggerFactory.getLogger(BuildImageResultCallback.class); + private static final Logger LOGGER = LoggerFactory.getLogger(BuildImageResultCallback.class); @CheckForNull private BuildResponseItem latestItem = null; diff --git a/src/main/java/com/github/dockerjava/core/command/EventsResultCallback.java b/src/main/java/com/github/dockerjava/core/command/EventsResultCallback.java index c731b863e..cd6205f6d 100644 --- a/src/main/java/com/github/dockerjava/core/command/EventsResultCallback.java +++ b/src/main/java/com/github/dockerjava/core/command/EventsResultCallback.java @@ -16,7 +16,7 @@ */ public class EventsResultCallback extends ResultCallbackTemplate { - private final static Logger LOGGER = LoggerFactory.getLogger(EventsResultCallback.class); + private static final Logger LOGGER = LoggerFactory.getLogger(EventsResultCallback.class); @Override public void onNext(Event item) { diff --git a/src/main/java/com/github/dockerjava/core/command/ExecStartResultCallback.java b/src/main/java/com/github/dockerjava/core/command/ExecStartResultCallback.java index 5f73b65eb..62e492db9 100644 --- a/src/main/java/com/github/dockerjava/core/command/ExecStartResultCallback.java +++ b/src/main/java/com/github/dockerjava/core/command/ExecStartResultCallback.java @@ -16,7 +16,7 @@ */ public class ExecStartResultCallback extends ResultCallbackTemplate { - private final static Logger LOGGER = LoggerFactory.getLogger(ExecStartResultCallback.class); + private static final Logger LOGGER = LoggerFactory.getLogger(ExecStartResultCallback.class); private OutputStream stdout, stderr; diff --git a/src/main/java/com/github/dockerjava/core/command/LogContainerResultCallback.java b/src/main/java/com/github/dockerjava/core/command/LogContainerResultCallback.java index b7fc81cb2..677e5fb64 100644 --- a/src/main/java/com/github/dockerjava/core/command/LogContainerResultCallback.java +++ b/src/main/java/com/github/dockerjava/core/command/LogContainerResultCallback.java @@ -16,7 +16,7 @@ */ public class LogContainerResultCallback extends ResultCallbackTemplate { - private final static Logger LOGGER = LoggerFactory.getLogger(LogContainerResultCallback.class); + private static final Logger LOGGER = LoggerFactory.getLogger(LogContainerResultCallback.class); @Override public void onNext(Frame item) { diff --git a/src/main/java/com/github/dockerjava/core/command/PullImageResultCallback.java b/src/main/java/com/github/dockerjava/core/command/PullImageResultCallback.java index 27be12215..ce274dbe8 100644 --- a/src/main/java/com/github/dockerjava/core/command/PullImageResultCallback.java +++ b/src/main/java/com/github/dockerjava/core/command/PullImageResultCallback.java @@ -19,7 +19,7 @@ */ public class PullImageResultCallback extends ResultCallbackTemplate { - private final static Logger LOGGER = LoggerFactory.getLogger(PullImageResultCallback.class); + private static final Logger LOGGER = LoggerFactory.getLogger(PullImageResultCallback.class); @CheckForNull private PullResponseItem latestItem = null; diff --git a/src/main/java/com/github/dockerjava/core/command/PushImageResultCallback.java b/src/main/java/com/github/dockerjava/core/command/PushImageResultCallback.java index 65ec93c88..55dfb5650 100644 --- a/src/main/java/com/github/dockerjava/core/command/PushImageResultCallback.java +++ b/src/main/java/com/github/dockerjava/core/command/PushImageResultCallback.java @@ -19,7 +19,7 @@ */ public class PushImageResultCallback extends ResultCallbackTemplate { - private final static Logger LOGGER = LoggerFactory.getLogger(PushImageResultCallback.class); + private static final Logger LOGGER = LoggerFactory.getLogger(PushImageResultCallback.class); @CheckForNull private PushResponseItem latestItem = null; diff --git a/src/main/java/com/github/dockerjava/core/command/WaitContainerResultCallback.java b/src/main/java/com/github/dockerjava/core/command/WaitContainerResultCallback.java index 5416d124c..feb7916e7 100644 --- a/src/main/java/com/github/dockerjava/core/command/WaitContainerResultCallback.java +++ b/src/main/java/com/github/dockerjava/core/command/WaitContainerResultCallback.java @@ -21,7 +21,7 @@ */ public class WaitContainerResultCallback extends ResultCallbackTemplate { - private final static Logger LOGGER = LoggerFactory.getLogger(WaitContainerResultCallback.class); + private static final Logger LOGGER = LoggerFactory.getLogger(WaitContainerResultCallback.class); @CheckForNull private WaitResponse waitResponse = null; diff --git a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java index cfbabb513..7994f3261 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java +++ b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java @@ -182,7 +182,7 @@ @SuppressWarnings("deprecation") class ApacheConnector implements Connector { - private final static Logger LOGGER = Logger.getLogger(ApacheConnector.class.getName()); + private static final Logger LOGGER = Logger.getLogger(ApacheConnector.class.getName()); private static final VersionInfo VERSION_INFO; diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index 0a0969513..ee08b57c2 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -114,6 +114,8 @@ + + From 1fc561bf1245c3464deb4ad44de619b781527d0d Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 19:05:58 +0300 Subject: [PATCH 008/878] Checkstyle: fixed braces. --- .../github/dockerjava/api/model/AuthConfig.java | 2 ++ .../java/com/github/dockerjava/api/model/Bind.java | 3 ++- .../com/github/dockerjava/api/model/Device.java | 3 ++- .../github/dockerjava/api/model/ExposedPort.java | 3 ++- .../com/github/dockerjava/api/model/Frame.java | 2 ++ .../github/dockerjava/api/model/Identifier.java | 13 ++++++++----- .../java/com/github/dockerjava/api/model/Link.java | 3 ++- .../com/github/dockerjava/api/model/LogConfig.java | 3 ++- .../github/dockerjava/api/model/PortBinding.java | 3 ++- .../com/github/dockerjava/api/model/Ports.java | 3 ++- .../github/dockerjava/api/model/Repository.java | 3 ++- .../github/dockerjava/api/model/RestartPolicy.java | 11 ++++++++--- .../com/github/dockerjava/api/model/Ulimit.java | 2 ++ .../com/github/dockerjava/api/model/Volume.java | 3 ++- .../com/github/dockerjava/api/model/VolumeRW.java | 3 ++- .../github/dockerjava/api/model/VolumesFrom.java | 3 ++- .../com/github/dockerjava/core/AuthConfigFile.java | 2 ++ .../github/dockerjava/core/DockerClientConfig.java | 5 ++++- .../github/dockerjava/core/DockerClientImpl.java | 9 ++++++--- .../github/dockerjava/core/KeystoreSSLConfig.java | 3 ++- .../github/dockerjava/core/RemoteApiVersion.java | 2 ++ .../core/async/ResultCallbackTemplate.java | 9 +++++---- .../dockerjava/core/command/BuildImageCmdImpl.java | 9 ++++++--- .../dockerjava/core/dockerfile/Dockerfile.java | 9 ++++++--- .../dockerjava/core/util/FiltersBuilder.java | 2 ++ .../dockerjava/jaxrs/AttachContainerCmdExec.java | 3 ++- .../dockerjava/jaxrs/DockerCmdExecFactoryImpl.java | 12 ++++++++---- .../dockerjava/jaxrs/ListVolumesCmdExec.java | 3 ++- .../dockerjava/jaxrs/TopContainerCmdExec.java | 3 ++- .../jaxrs/async/AbstractCallbackNotifier.java | 3 ++- .../dockerjava/netty/exec/ListNetworksCmdExec.java | 3 ++- .../dockerjava/netty/exec/ListVolumesCmdExec.java | 3 ++- .../dockerjava/netty/exec/TopContainerCmdExec.java | 3 ++- .../netty/handler/FramedResponseStreamHandler.java | 3 ++- .../resources/checkstyle/checkstyle-config.xml | 14 ++++++++++++++ 35 files changed, 117 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/github/dockerjava/api/model/AuthConfig.java b/src/main/java/com/github/dockerjava/api/model/AuthConfig.java index 0e994daf3..0bd6cac8c 100644 --- a/src/main/java/com/github/dockerjava/api/model/AuthConfig.java +++ b/src/main/java/com/github/dockerjava/api/model/AuthConfig.java @@ -79,6 +79,7 @@ public String toString() { return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE); } + //CHECKSTYLE:OFF @Override public int hashCode() { final int prime = 31; @@ -127,4 +128,5 @@ public boolean equals(Object obj) { return false; return true; } + //CHECKSTYLE:ON } diff --git a/src/main/java/com/github/dockerjava/api/model/Bind.java b/src/main/java/com/github/dockerjava/api/model/Bind.java index f7f6954f5..aa4863923 100644 --- a/src/main/java/com/github/dockerjava/api/model/Bind.java +++ b/src/main/java/com/github/dockerjava/api/model/Bind.java @@ -72,8 +72,9 @@ public boolean equals(Object obj) { Bind other = (Bind) obj; return new EqualsBuilder().append(path, other.getPath()).append(volume, other.getVolume()) .append(accessMode, other.getAccessMode()).isEquals(); - } else + } else { return super.equals(obj); + } } @Override diff --git a/src/main/java/com/github/dockerjava/api/model/Device.java b/src/main/java/com/github/dockerjava/api/model/Device.java index 21aef589a..9240239b1 100644 --- a/src/main/java/com/github/dockerjava/api/model/Device.java +++ b/src/main/java/com/github/dockerjava/api/model/Device.java @@ -52,8 +52,9 @@ public boolean equals(Object obj) { return new EqualsBuilder().append(cGroupPermissions, other.getcGroupPermissions()) .append(pathInContainer, other.getPathInContainer()).append(pathOnHost, other.getPathOnHost()) .isEquals(); - } else + } else { return super.equals(obj); + } } @Override 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 4dbdbe19b..43ee92291 100644 --- a/src/main/java/com/github/dockerjava/api/model/ExposedPort.java +++ b/src/main/java/com/github/dockerjava/api/model/ExposedPort.java @@ -151,8 +151,9 @@ public boolean equals(Object obj) { if (obj instanceof ExposedPort) { ExposedPort other = (ExposedPort) obj; return new EqualsBuilder().append(protocol, other.getProtocol()).append(port, other.getPort()).isEquals(); - } else + } else { return super.equals(obj); + } } @Override diff --git a/src/main/java/com/github/dockerjava/api/model/Frame.java b/src/main/java/com/github/dockerjava/api/model/Frame.java index 1be92f9b6..e398ec255 100644 --- a/src/main/java/com/github/dockerjava/api/model/Frame.java +++ b/src/main/java/com/github/dockerjava/api/model/Frame.java @@ -28,6 +28,7 @@ public String toString() { return String.format("%s: %s", streamType, new String(payload).trim()); } + //CHECKSTYLE:OFF @Override public boolean equals(Object o) { if (this == o) @@ -47,4 +48,5 @@ public int hashCode() { result = 31 * result + Arrays.hashCode(payload); return result; } + //CHECKSTYLE:ON } diff --git a/src/main/java/com/github/dockerjava/api/model/Identifier.java b/src/main/java/com/github/dockerjava/api/model/Identifier.java index 96daab11a..ed5100e25 100644 --- a/src/main/java/com/github/dockerjava/api/model/Identifier.java +++ b/src/main/java/com/github/dockerjava/api/model/Identifier.java @@ -14,10 +14,11 @@ public class Identifier { public Identifier(Repository repository, String tag) { this.repository = repository; - if (tag == null) + if (tag == null) { this.tag = Optional.absent(); - else + } else { this.tag = Optional.of(tag); + } } /** @@ -33,15 +34,17 @@ public static Identifier fromCompoundString(String identifier) { String[] parts = identifier.split("/"); if (parts.length != 2) { String[] rhs = identifier.split(":"); - if (rhs.length != 2) + if (rhs.length != 2) { return new Identifier(new Repository(identifier), null); - else + } else { return new Identifier(new Repository(rhs[0]), rhs[1]); + } } String[] rhs = parts[1].split(":"); - if (rhs.length != 2) + if (rhs.length != 2) { return new Identifier(new Repository(identifier), null); + } return new Identifier(new Repository(parts[0] + "/" + rhs[0]), rhs[1]); } diff --git a/src/main/java/com/github/dockerjava/api/model/Link.java b/src/main/java/com/github/dockerjava/api/model/Link.java index 43f9de65b..f647438a9 100644 --- a/src/main/java/com/github/dockerjava/api/model/Link.java +++ b/src/main/java/com/github/dockerjava/api/model/Link.java @@ -74,8 +74,9 @@ public boolean equals(final Object obj) { if (obj instanceof Link) { final Link other = (Link) obj; return new EqualsBuilder().append(name, other.getName()).append(alias, other.getAlias()).isEquals(); - } else + } else { return super.equals(obj); + } } @Override diff --git a/src/main/java/com/github/dockerjava/api/model/LogConfig.java b/src/main/java/com/github/dockerjava/api/model/LogConfig.java index 37bb17a8e..669bbc554 100644 --- a/src/main/java/com/github/dockerjava/api/model/LogConfig.java +++ b/src/main/java/com/github/dockerjava/api/model/LogConfig.java @@ -98,8 +98,9 @@ public LoggingType deserialize(JsonParser jsonParser, DeserializationContext des JsonNode node = oc.readTree(jsonParser); for (LoggingType loggingType : values()) { - if (loggingType.getType().equals(node.asText())) + if (loggingType.getType().equals(node.asText())) { return loggingType; + } } throw new IllegalArgumentException("No enum constant " + LoggingType.class + "." + node.asText()); diff --git a/src/main/java/com/github/dockerjava/api/model/PortBinding.java b/src/main/java/com/github/dockerjava/api/model/PortBinding.java index 99e04f1bc..81f94ca06 100644 --- a/src/main/java/com/github/dockerjava/api/model/PortBinding.java +++ b/src/main/java/com/github/dockerjava/api/model/PortBinding.java @@ -64,8 +64,9 @@ public boolean equals(Object obj) { PortBinding other = (PortBinding) obj; return new EqualsBuilder().append(binding, other.getBinding()).append(exposedPort, other.getExposedPort()) .isEquals(); - } else + } else { return super.equals(obj); + } } @Override 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 6132e4647..43ad92585 100644 --- a/src/main/java/com/github/dockerjava/api/model/Ports.java +++ b/src/main/java/com/github/dockerjava/api/model/Ports.java @@ -249,8 +249,9 @@ public boolean equals(Object obj) { Binding other = (Binding) obj; return new EqualsBuilder().append(hostIp, other.getHostIp()).append(hostPort, other.getHostPort()) .isEquals(); - } else + } else { return super.equals(obj); + } } } diff --git a/src/main/java/com/github/dockerjava/api/model/Repository.java b/src/main/java/com/github/dockerjava/api/model/Repository.java index 3055c8980..1e814a1b5 100644 --- a/src/main/java/com/github/dockerjava/api/model/Repository.java +++ b/src/main/java/com/github/dockerjava/api/model/Repository.java @@ -37,8 +37,9 @@ public String toString() { } public String getPath() { - if (!name.contains("/")) + if (!name.contains("/")) { return name; + } return name.substring(name.indexOf("/") + 1); } diff --git a/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java b/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java index 34f8e7e57..d5c8f6e8e 100644 --- a/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java +++ b/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java @@ -89,10 +89,14 @@ public static RestartPolicy parse(String serialized) throws IllegalArgumentExcep try { String[] parts = serialized.split(":"); String name = parts[0]; - if ("no".equals(name)) + if ("no".equals(name)) { return noRestart(); - if ("always".equals(name)) + } + + if ("always".equals(name)) { return alwaysRestart(); + } + if ("on-failure".equals(name)) { int count = 0; if (parts.length == 2) { @@ -124,8 +128,9 @@ public boolean equals(Object obj) { RestartPolicy other = (RestartPolicy) obj; return new EqualsBuilder().append(maximumRetryCount, other.getMaximumRetryCount()) .append(name, other.getName()).isEquals(); - } else + } else { return super.equals(obj); + } } @Override diff --git a/src/main/java/com/github/dockerjava/api/model/Ulimit.java b/src/main/java/com/github/dockerjava/api/model/Ulimit.java index 209eb22fe..51602e043 100644 --- a/src/main/java/com/github/dockerjava/api/model/Ulimit.java +++ b/src/main/java/com/github/dockerjava/api/model/Ulimit.java @@ -45,6 +45,7 @@ public Integer getHard() { return hard; } + //CHECKSTYLE:OFF @Override public boolean equals(Object obj) { if (obj instanceof Ulimit) { @@ -60,4 +61,5 @@ public boolean equals(Object obj) { public int hashCode() { return new HashCodeBuilder().append(name).append(soft).append(hard).toHashCode(); } + //CHECKSTYLE:ON } diff --git a/src/main/java/com/github/dockerjava/api/model/Volume.java b/src/main/java/com/github/dockerjava/api/model/Volume.java index 93f7e4e4f..655a8dbfc 100644 --- a/src/main/java/com/github/dockerjava/api/model/Volume.java +++ b/src/main/java/com/github/dockerjava/api/model/Volume.java @@ -30,8 +30,9 @@ public boolean equals(Object obj) { if (obj instanceof Volume) { Volume other = (Volume) obj; return new EqualsBuilder().append(path, other.getPath()).isEquals(); - } else + } else { return super.equals(obj); + } } @Override diff --git a/src/main/java/com/github/dockerjava/api/model/VolumeRW.java b/src/main/java/com/github/dockerjava/api/model/VolumeRW.java index bdb347bee..3709d1b0c 100644 --- a/src/main/java/com/github/dockerjava/api/model/VolumeRW.java +++ b/src/main/java/com/github/dockerjava/api/model/VolumeRW.java @@ -69,8 +69,9 @@ public boolean equals(Object obj) { VolumeRW other = (VolumeRW) obj; return new EqualsBuilder().append(getVolume(), other.getVolume()).append(accessMode, other.getAccessMode()) .isEquals(); - } else + } else { return super.equals(obj); + } } @Override diff --git a/src/main/java/com/github/dockerjava/api/model/VolumesFrom.java b/src/main/java/com/github/dockerjava/api/model/VolumesFrom.java index 01f80aba9..78585ef48 100644 --- a/src/main/java/com/github/dockerjava/api/model/VolumesFrom.java +++ b/src/main/java/com/github/dockerjava/api/model/VolumesFrom.java @@ -77,8 +77,9 @@ public boolean equals(Object obj) { VolumesFrom other = (VolumesFrom) obj; return new EqualsBuilder().append(container, other.getContainer()) .append(accessMode, other.getAccessMode()).isEquals(); - } else + } else { return super.equals(obj); + } } @Override diff --git a/src/main/java/com/github/dockerjava/core/AuthConfigFile.java b/src/main/java/com/github/dockerjava/core/AuthConfigFile.java index 78fd453ab..7315a05af 100644 --- a/src/main/java/com/github/dockerjava/core/AuthConfigFile.java +++ b/src/main/java/com/github/dockerjava/core/AuthConfigFile.java @@ -63,6 +63,7 @@ public AuthConfigurations getAuthConfigurations() { return authConfigurations; } + //CHECKSTYLE:OFF @Override public int hashCode() { final int prime = 31; @@ -87,6 +88,7 @@ public boolean equals(Object obj) { return false; return true; } + //CHECKSTYLE:ON @Override public String toString() { diff --git a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java index 8c363321c..35f54c736 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java @@ -272,8 +272,9 @@ public AuthConfig effectiveAuthConfig(String imageName) { AuthConfig otherAuthConfig = getAuthConfig(); - if (otherAuthConfig != null) + if (otherAuthConfig != null) { authConfig = otherAuthConfig; + } return authConfig; } @@ -294,6 +295,7 @@ public AuthConfigurations getAuthConfigurations() { return new AuthConfigurations(); } + //CHECKSTYLE:OFF @Override public boolean equals(Object o) { if (this == o) @@ -335,6 +337,7 @@ public int hashCode() { result = 31 * result + (sslConfig != null ? sslConfig.hashCode() : 0); return result; } + //CHECKSTYLE:ON @Override public String toString() { diff --git a/src/main/java/com/github/dockerjava/core/DockerClientImpl.java b/src/main/java/com/github/dockerjava/core/DockerClientImpl.java index ede135613..ca842b383 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientImpl.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientImpl.java @@ -214,20 +214,23 @@ public PushImageCmd pushImageCmd(String name) { PushImageCmd cmd = new PushImageCmdImpl(getDockerCmdExecFactory().createPushImageCmdExec(), name); AuthConfig cfg = dockerClientConfig.effectiveAuthConfig(name); - if (cfg != null) + if (cfg != null) { cmd.withAuthConfig(cfg); + } return cmd; } @Override public PushImageCmd pushImageCmd(Identifier identifier) { PushImageCmd cmd = pushImageCmd(identifier.repository.name); - if (identifier.tag.isPresent()) + if (identifier.tag.isPresent()) { cmd.withTag(identifier.tag.get()); + } AuthConfig cfg = dockerClientConfig.effectiveAuthConfig(identifier.repository.name); - if (cfg != null) + if (cfg != null) { cmd.withAuthConfig(cfg); + } return cmd; } diff --git a/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java b/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java index a552b3775..bdc2e6e89 100644 --- a/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java +++ b/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java @@ -81,8 +81,9 @@ public SSLContext getSSLContext() throws KeyManagementException, UnrecoverableKe String httpProtocols = System.getProperty("https.protocols"); System.setProperty("https.protocols", "TLSv1"); - if (httpProtocols != null) + if (httpProtocols != null) { System.setProperty("https.protocols", httpProtocols); + } final KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory .getDefaultAlgorithm()); diff --git a/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java b/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java index 63269ce55..80f9406b7 100644 --- a/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java +++ b/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java @@ -127,6 +127,7 @@ public boolean isGreaterOrEqual(final RemoteApiVersion other) { return false; } + //CHECKSTYLE:OFF @Override public boolean equals(final Object o) { if (this == o) @@ -136,6 +137,7 @@ public boolean equals(final Object o) { final RemoteApiVersion that = (RemoteApiVersion) o; return Objects.equal(major, that.major) && Objects.equal(minor, that.minor); } + //CHECKSTYLE:ON @Override public int hashCode() { diff --git a/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java b/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java index f87c0e525..0e146c1e9 100644 --- a/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java +++ b/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java @@ -47,11 +47,11 @@ public void onStart(Closeable stream) { @Override public void onError(Throwable throwable) { - if (closed) - return; + if (closed) return; - if (this.firstError == null) + if (this.firstError == null) { this.firstError = throwable; + } try { LOGGER.error("Error during callback", throwable); @@ -76,8 +76,9 @@ public void onComplete() { @Override public void close() throws IOException { closed = true; - if (stream != null) + if (stream != null) { stream.close(); + } completed.countDown(); } diff --git a/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java index acf4fa10a..ef57e84a4 100644 --- a/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java @@ -248,13 +248,16 @@ public BuildImageCmd withBaseDirectory(File baseDirectory) { @Override public BuildImageCmdImpl withDockerfile(File dockerfile) { checkNotNull(dockerfile); - if (!dockerfile.exists()) + if (!dockerfile.exists()) { throw new IllegalArgumentException("Dockerfile does not exist"); - if (!dockerfile.isFile()) + } + if (!dockerfile.isFile()) { throw new IllegalArgumentException("Not a directory"); + } - if (baseDirectory == null) + if (baseDirectory == null) { withBaseDirectory(dockerfile.getParentFile()); + } this.dockerFile = dockerfile; diff --git a/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java b/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java index d7173d4d8..9a94d6b1d 100644 --- a/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java +++ b/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java @@ -221,21 +221,24 @@ private String effectiveMatchingIgnorePattern(File file) { List matchingPattern = matchingIgnorePatterns(relativeFilename); - if (matchingPattern.isEmpty()) + if (matchingPattern.isEmpty()) { return null; + } String lastMatchingPattern = matchingPattern.get(matchingPattern.size() - 1); int lastMatchingPatternIndex = ignores.lastIndexOf(lastMatchingPattern); - if (lastMatchingPatternIndex == ignores.size() - 1) + if (lastMatchingPatternIndex == ignores.size() - 1) { return lastMatchingPattern; + } List remainingIgnorePattern = ignores.subList(lastMatchingPatternIndex + 1, ignores.size()); for (String ignorePattern : remainingIgnorePattern) { - if (ignorePattern.equals("!" + relativeFilename)) + if (ignorePattern.equals("!" + relativeFilename)) { return null; + } } return lastMatchingPattern; diff --git a/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java b/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java index d6cd0d9f7..7ad380481 100644 --- a/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java +++ b/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java @@ -81,6 +81,7 @@ private static List labelsMapToList(Map labels) { return result; } + //CHECKSTYLE:OFF @Override public boolean equals(Object o) { if (this == o) @@ -93,6 +94,7 @@ public boolean equals(Object o) { return filters.equals(filters1.filters); } + //CHECKSTYLE:ON @Override public int hashCode() { diff --git a/src/main/java/com/github/dockerjava/jaxrs/AttachContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/AttachContainerCmdExec.java index b3670a8b9..c21c305df 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AttachContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/AttachContainerCmdExec.java @@ -26,9 +26,10 @@ public AttachContainerCmdExec(WebTarget baseResource, DockerClientConfig dockerC protected AbstractCallbackNotifier callbackNotifier(AttachContainerCmd command, ResultCallback resultCallback) { - if (command.getStdin() != null) + if (command.getStdin() != null) { throw new UnsupportedOperationException( "Passing stdin to the container is currently not supported. Try experimental netty engine!"); + } WebTarget webTarget = getBaseResource().path("/containers/{id}/attach").resolveTemplate("id", command.getContainerId()); diff --git a/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java b/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java index bbd71ba38..79f60ec39 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java +++ b/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java @@ -134,15 +134,17 @@ public void init(DockerClientConfig dockerClientConfig) { if (clientResponseFilters != null) { for (ClientResponseFilter clientResponseFilter : clientResponseFilters) { - if (clientResponseFilter != null) + if (clientResponseFilter != null) { clientConfig.register(clientResponseFilter); + } } } if (clientRequestFilters != null) { for (ClientRequestFilter clientRequestFilter : clientRequestFilters) { - if (clientRequestFilter != null) + if (clientRequestFilter != null) { clientConfig.register(clientRequestFilter); + } } } @@ -171,10 +173,12 @@ public void init(DockerClientConfig dockerClientConfig) { PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(getSchemeRegistry( originalUri, sslContext)); - if (maxTotalConnections != null) + if (maxTotalConnections != null) { connManager.setMaxTotal(maxTotalConnections); - if (maxPerRouteConnections != null) + } + if (maxPerRouteConnections != null) { connManager.setDefaultMaxPerRoute(maxPerRouteConnections); + } clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, connManager); diff --git a/src/main/java/com/github/dockerjava/jaxrs/ListVolumesCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/ListVolumesCmdExec.java index dd877a89a..4f2165b93 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/ListVolumesCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/ListVolumesCmdExec.java @@ -25,8 +25,9 @@ public ListVolumesCmdExec(WebTarget baseResource, DockerClientConfig dockerClien protected ListVolumesResponse execute(ListVolumesCmd command) { WebTarget webTarget = getBaseResource().path("/volumes"); - if (command.getFilters() != null && !command.getFilters().isEmpty()) + if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); + } LOGGER.trace("GET: {}", webTarget); diff --git a/src/main/java/com/github/dockerjava/jaxrs/TopContainerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/TopContainerCmdExec.java index 48b6641a1..22841d8bf 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/TopContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/TopContainerCmdExec.java @@ -25,8 +25,9 @@ protected TopContainerResponse execute(TopContainerCmd command) { WebTarget webResource = getBaseResource().path("/containers/{id}/top").resolveTemplate("id", command.getContainerId()); - if (!StringUtils.isEmpty(command.getPsArgs())) + if (!StringUtils.isEmpty(command.getPsArgs())) { webResource = webResource.queryParam("ps_args", command.getPsArgs()); + } LOGGER.trace("GET: {}", webResource); return webResource.request().accept(MediaType.APPLICATION_JSON).get(TopContainerResponse.class); diff --git a/src/main/java/com/github/dockerjava/jaxrs/async/AbstractCallbackNotifier.java b/src/main/java/com/github/dockerjava/jaxrs/async/AbstractCallbackNotifier.java index e94ad1f2c..aac5a94d6 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/async/AbstractCallbackNotifier.java +++ b/src/main/java/com/github/dockerjava/jaxrs/async/AbstractCallbackNotifier.java @@ -58,8 +58,9 @@ public Void call() throws Exception { try { InputStream inputStream = new WrappedResponseInputStream(response); - if (resultCallback != null) + if (resultCallback != null) { responseStreamProcessor.processResponseStream(inputStream, resultCallback); + } return null; } catch (Exception e) { diff --git a/src/main/java/com/github/dockerjava/netty/exec/ListNetworksCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/ListNetworksCmdExec.java index e0c945d6d..11e5fe238 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/ListNetworksCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/ListNetworksCmdExec.java @@ -28,8 +28,9 @@ public ListNetworksCmdExec(WebTarget baseResource, DockerClientConfig dockerClie protected List execute(ListNetworksCmd command) { WebTarget webTarget = getBaseResource().path("/networks"); - if (command.getFilters() != null && !command.getFilters().isEmpty()) + if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); + } LOGGER.trace("GET: {}", webTarget); diff --git a/src/main/java/com/github/dockerjava/netty/exec/ListVolumesCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/ListVolumesCmdExec.java index 98d073ff5..1db5684cb 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/ListVolumesCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/ListVolumesCmdExec.java @@ -26,8 +26,9 @@ public ListVolumesCmdExec(WebTarget baseResource, DockerClientConfig dockerClien protected ListVolumesResponse execute(ListVolumesCmd command) { WebTarget webTarget = getBaseResource().path("/volumes"); - if (command.getFilters() != null && !command.getFilters().isEmpty()) + if (command.getFilters() != null && !command.getFilters().isEmpty()) { webTarget = webTarget.queryParam("filters", urlPathSegmentEscaper().escape(FiltersEncoder.jsonEncode(command.getFilters()))); + } LOGGER.trace("GET: {}", webTarget); diff --git a/src/main/java/com/github/dockerjava/netty/exec/TopContainerCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/TopContainerCmdExec.java index 07ec12b03..c4ae9249d 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/TopContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/TopContainerCmdExec.java @@ -25,8 +25,9 @@ protected TopContainerResponse execute(TopContainerCmd command) { WebTarget webResource = getBaseResource().path("/containers/{id}/top").resolveTemplate("id", command.getContainerId()); - if (!StringUtils.isEmpty(command.getPsArgs())) + if (!StringUtils.isEmpty(command.getPsArgs())) { webResource = webResource.queryParam("ps_args", command.getPsArgs()); + } LOGGER.trace("GET: {}", webResource); return webResource.request().accept(MediaType.APPLICATION_JSON).get(new TypeReference() { diff --git a/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java b/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java index 945833cdd..b58292b51 100644 --- a/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java +++ b/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java @@ -89,8 +89,9 @@ private Frame decode() { if (streamType.equals(StreamType.RAW)) { - if (payloadCnt == 0) + if (payloadCnt == 0) { payload = new byte[rawBuffer.readableBytes()]; + } int count = read(payload, payloadCnt, rawBuffer.readableBytes()); diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index ee08b57c2..a97064845 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -119,6 +119,20 @@ + + + + + + + + + + + + + + From 552b05dbafbabab2eeac7c21f596779f8d2e7367 Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Sat, 30 Jan 2016 22:35:49 +0100 Subject: [PATCH 009/878] Refactoring of DockerClientConfig to better match with docker CLI configuration options --- README.md | 62 ++-- .../api/command/DockerCmdExecFactory.java | 4 + .../dockerjava/core/DockerClientConfig.java | 317 +++++++++--------- .../dockerjava/core/DockerClientImpl.java | 14 +- .../dockerjava/jaxrs/AbstrDockerCmdExec.java | 2 +- .../jaxrs/DockerCmdExecFactoryImpl.java | 83 +++-- .../netty/DockerCmdExecFactoryImpl.java | 31 +- .../netty/exec/AbstrDockerCmdExec.java | 2 +- src/main/resources/docker-java.properties | 17 + src/main/resources/docker.io.properties | 5 - .../client/AbstractDockerClientTest.java | 6 +- .../core/DockerClientConfigTest.java | 195 +++++------ .../dockerjava/core/DockerClientImplTest.java | 7 +- .../core/TestDockerCmdExecFactory.java | 7 + .../someHomeDir/.docker/certs/dummy.txt | 0 .../resources/someHomeDir/.docker/config.json | 9 + 16 files changed, 414 insertions(+), 347 deletions(-) create mode 100644 src/main/resources/docker-java.properties delete mode 100644 src/main/resources/docker.io.properties create mode 100644 src/test/resources/someHomeDir/.docker/certs/dummy.txt create mode 100644 src/test/resources/someHomeDir/.docker/config.json diff --git a/README.md b/README.md index 26ec653ac..9175135ae 100644 --- a/README.md +++ b/README.md @@ -85,13 +85,15 @@ For code examples, please look at the [Wiki](https://github.com/docker-java/dock There are a couple of configuration items, all of which have sensible defaults: -* `url` The Docker URL, e.g. `https://localhost:2376` or `unix:///var/run/docker.sock` -* `version` The API version, e.g. `1.16`. -* `username` Your registry username (required to push containers). -* `password` Your registry password. -* `email` Your registry email. -* `serverAddress` Your registry's address. -* `dockerCertPath` Path to the docker certs. +* `DOCKER_HOST` The Docker Host URL, e.g. `tcp://localhost:2376` or `unix:///var/run/docker.sock` +* `DOCKER_TLS_VERIFY` enable/disable TLS verification (switch between `http` and `https` protocol) +* `DOCKER_CERT_PATH` Path to the certificates needed for TLS verification +* `DOCKER_CONFIG` Path for additional docker configuration files (like `.dockercfg`) +* `api.version` The API version, e.g. `1.21`. +* `registry.url` Your registry's address. +* `registry.username` Your registry username (required to push containers). +* `registry.password` Your registry password. +* `registry.email` Your registry email. There are three ways to configure, in descending order of precedence: @@ -99,42 +101,46 @@ There are three ways to configure, in descending order of precedence: In your application, e.g. DockerClientConfig config = DockerClientConfig.createDefaultConfigBuilder() - .withVersion("1.16") - .withUri("https://my-docker-host.tld:2376") - .withUsername("dockeruser") - .withPassword("ilovedocker") - .withEmail("dockeruser@github.com") - .withServerAddress("https://index.docker.io/v1/") - .withDockerCertPath("/home/user/.docker") + .withDockerHost("tcp://my-docker-host.tld:2376") + .withDockerTlsVerify("1") + .withDockerCertPath("/home/user/.docker/certs") + .withDockerConfig("/home/user/.docker") + .withApiVersion("1.21") + .withRegistryUrl("https://index.docker.io/v1/") + .withRegistryUsername("dockeruser") + .withRegistryPassword("ilovedocker") + .withRegistryEmail("dockeruser@github.com") .build(); DockerClient docker = DockerClientBuilder.getInstance(config).build(); #### Properties - docker.io.url=https://localhost:2376 - docker.io.version=1.16 - docker.io.username=dockeruser - docker.io.password=ilovedocker - docker.io.email=dockeruser@github.com - docker.io.serverAddress=https://index.docker.io/v1/ - docker.io.dockerCertPath=/home/user/.docker - + DOCKER_HOST=tcp://localhost:2376 + DOCKER_TLS_VERIFY=1 + DOCKER_CERT_PATH=/home/user/.docker/certs + DOCKER_CONFIG=/home/user/.docker + api.version=1.21 + registry.url=https://index.docker.io/v1/ + registry.username=dockeruser + registry.password=ilovedocker + registry.email=dockeruser@github.com ##### System Properties: - java -Ddocker.io.username=dockeruser pkg.Main + java -Dregistry.username=dockeruser pkg.Main ##### System Environment - export DOCKER_URL=http://localhost:2376 - -Note: we also auto-detect defaults. If you use `DOCKER_HOST` we use that value, and if `DOCKER_CERT_PATH` or `DOCKER_TLS_VERIFY=1` is set, we switch to SSL. + export DOCKER_URL=tcp://localhost:2376 + export DOCKER_TLS_VERIFY=1 + export DOCKER_CERT_PATH=/home/user/.docker/certs + export DOCKER_CONFIG=/home/user/.docker ##### File System -In `$HOME/.docker.io.properties` +In `$HOME/.docker-java.properties` ##### Class Path -In the class path at `/docker.io.properties` +In the class path at `/docker-java.properties` diff --git a/src/main/java/com/github/dockerjava/api/command/DockerCmdExecFactory.java b/src/main/java/com/github/dockerjava/api/command/DockerCmdExecFactory.java index fb1715e38..fc793558f 100644 --- a/src/main/java/com/github/dockerjava/api/command/DockerCmdExecFactory.java +++ b/src/main/java/com/github/dockerjava/api/command/DockerCmdExecFactory.java @@ -3,6 +3,8 @@ import java.io.Closeable; import java.io.IOException; +import javax.net.ssl.SSLContext; + import com.github.dockerjava.core.DockerClientConfig; public interface DockerCmdExecFactory extends Closeable { @@ -105,6 +107,8 @@ public interface DockerCmdExecFactory extends Closeable { public DisconnectFromNetworkCmd.Exec createDisconnectFromNetworkCmdExec(); + public DockerCmdExecFactory withSSLContext(SSLContext sslContext); + @Override public void close() throws IOException; diff --git a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java index fa5c77e6a..400f417ea 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java @@ -8,10 +8,17 @@ import java.io.InputStream; import java.io.Serializable; import java.net.URI; -import java.util.Collections; -import java.util.HashMap; +import java.util.HashSet; import java.util.Map; import java.util.Properties; +import java.util.Set; + +import org.apache.commons.lang.BooleanUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; +import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.commons.lang.builder.ToStringStyle; import com.github.dockerjava.api.exception.DockerClientException; import com.github.dockerjava.api.model.AuthConfig; @@ -19,74 +26,108 @@ import com.github.dockerjava.core.NameParser.HostnameReposName; import com.github.dockerjava.core.NameParser.ReposTag; +/** + * Respects some of the docker CLI options. See + * https://docs.docker.com/engine/reference/commandline/cli/#environment-variables + */ public class DockerClientConfig implements Serializable { private static final long serialVersionUID = -4307357472441531489L; - private static final String DOCKER_HOST_PROPERTY = "DOCKER_HOST"; + public static final String DOCKER_HOST = "DOCKER_HOST"; - private static final String DOCKER_CERT_PATH_PROPERTY = "DOCKER_CERT_PATH"; + public static final String DOCKER_TLS_VERIFY = "DOCKER_TLS_VERIFY"; - private static final String DOCKER_VERIFY_TLS_PROPERTY = "DOCKER_TLS_VERIFY"; + public static final String DOCKER_CONFIG = "DOCKER_CONFIG"; - private static final String DOCKER_IO_URL_PROPERTY = "docker.io.url"; + public static final String DOCKER_CERT_PATH = "DOCKER_CERT_PATH"; - private static final String DOCKER_IO_VERSION_PROPERTY = "docker.io.version"; + public static final String API_VERSION = "api.version"; - private static final String DOCKER_IO_USERNAME_PROPERTY = "docker.io.username"; + public static final String REGISTRY_USERNAME = "registry.username"; - private static final String DOCKER_IO_PASSWORD_PROPERTY = "docker.io.password"; + public static final String REGISTRY_PASSWORD = "registry.password"; - private static final String DOCKER_IO_EMAIL_PROPERTY = "docker.io.email"; + public static final String REGISTRY_EMAIL = "registry.email"; - private static final String DOCKER_IO_SERVER_ADDRESS_PROPERTY = "docker.io.serverAddress"; + public static final String REGISTRY_URL = "registry.url"; - private static final String DOCKER_IO_DOCKER_CERT_PATH_PROPERTY = "docker.io.dockerCertPath"; + private static final String DOCKER_JAVA_PROPERTIES = "docker-java.properties"; - private static final String DOCKER_IO_DOCKER_CFG_PATH_PROPERTY = "docker.io.dockerCfgPath"; + private static final String DOCKER_CFG = ".dockercfg"; + + private static final Set configKeys = new HashSet(); - /** - * A map from the environment name to the interval name. - */ - // Immutable ish - private static final Map ENV_NAME_TO_IO_NAME; static { - Map m = new HashMap(); - m.put("DOCKER_URL", DOCKER_IO_URL_PROPERTY); - m.put("DOCKER_VERSION", DOCKER_IO_VERSION_PROPERTY); - m.put("DOCKER_USERNAME", DOCKER_IO_USERNAME_PROPERTY); - m.put("DOCKER_PASSWORD", DOCKER_IO_PASSWORD_PROPERTY); - m.put("DOCKER_EMAIL", DOCKER_IO_EMAIL_PROPERTY); - m.put("DOCKER_SERVER_ADDRESS", DOCKER_IO_SERVER_ADDRESS_PROPERTY); - m.put(DOCKER_CERT_PATH_PROPERTY, DOCKER_IO_DOCKER_CERT_PATH_PROPERTY); - m.put("DOCKER_CFG_PATH", DOCKER_IO_DOCKER_CFG_PATH_PROPERTY); - ENV_NAME_TO_IO_NAME = Collections.unmodifiableMap(m); + configKeys.add(DOCKER_HOST); + configKeys.add(DOCKER_TLS_VERIFY); + configKeys.add(DOCKER_CONFIG); + configKeys.add(DOCKER_CERT_PATH); + configKeys.add(API_VERSION); + configKeys.add(REGISTRY_USERNAME); + configKeys.add(REGISTRY_PASSWORD); + configKeys.add(REGISTRY_EMAIL); + configKeys.add(REGISTRY_URL); } - private static final String DOCKER_IO_PROPERTIES_PROPERTY = "docker.io.properties"; + private URI dockerHost; - private URI uri; + private final String registryUsername, registryPassword, registryEmail, registryUrl, dockerConfig, dockerCertPath; - private final String username, password, email, serverAddress, dockerCfgPath; + private boolean dockerTlsVerify; - private final RemoteApiVersion version; + private final RemoteApiVersion apiVersion; - private final SSLConfig sslConfig; + DockerClientConfig(URI dockerHost, String dockerConfig, String apiVersion, String registryUrl, + String registryUsername, String registryPassword, String registryEmail, String dockerCertPath, + boolean dockerTslVerify) { + this.dockerHost = checkDockerHostScheme(dockerHost); + this.dockerTlsVerify = dockerTslVerify; + this.dockerCertPath = checkDockerCertPath(dockerTslVerify, dockerCertPath); + this.dockerConfig = dockerConfig; + this.apiVersion = RemoteApiVersion.parseConfigWithDefault(apiVersion); + this.registryUsername = registryUsername; + this.registryPassword = registryPassword; + this.registryEmail = registryEmail; + this.registryUrl = registryUrl; + } - DockerClientConfig(URI uri, String version, String username, String password, String email, String serverAddress, - String dockerCfgPath, SSLConfig sslConfig) { - this.uri = uri; - this.version = RemoteApiVersion.parseConfigWithDefault(version); - this.username = username; - this.password = password; - this.email = email; - this.serverAddress = serverAddress; - this.dockerCfgPath = dockerCfgPath; - this.sslConfig = sslConfig; + private URI checkDockerHostScheme(URI dockerHost) { + if ("tcp".equals(dockerHost.getScheme()) || "unix".equals(dockerHost.getScheme())) { + return dockerHost; + } else { + throw new DockerClientException("Unsupported protocol scheme found: '" + dockerHost + + "'. Only 'tcp://' or 'unix://' supported."); + } + } + + private String checkDockerCertPath(boolean dockerTlsVerify, String dockerCertPath) { + if (dockerTlsVerify) { + if (StringUtils.isEmpty(dockerCertPath)) { + throw new DockerClientException( + "Enabled TLS verification (DOCKER_TLS_VERIFY=1) but certifate path (DOCKER_CERT_PATH) is not defined."); + } else { + File certPath = new File(dockerCertPath); + + if (!certPath.exists()) { + throw new DockerClientException( + "Certificate path (DOCKER_CERT_PATH) '" + dockerCertPath + "' doesn't exist."); + } + + if(certPath.isDirectory()) { + return dockerCertPath; + } else { + throw new DockerClientException( + "Certificate path (DOCKER_CERT_PATH) '" + dockerCertPath + "' doesn't point to a directory."); + } + } + } else { + return dockerCertPath; + } } private static Properties loadIncludedDockerProperties(Properties systemProperties) { - try (InputStream is = DockerClientConfig.class.getResourceAsStream("/" + DOCKER_IO_PROPERTIES_PROPERTY)) { + try (InputStream is = DockerClientConfig.class.getResourceAsStream("/" + DOCKER_JAVA_PROPERTIES)) { Properties p = new Properties(); p.load(is); replaceProperties(p, systemProperties); @@ -125,7 +166,7 @@ private static Properties overrideDockerPropertiesWithSettingsFromUserHome(Prope overriddenProperties.putAll(p); final File usersDockerPropertiesFile = new File(systemProperties.getProperty("user.home"), "." - + DOCKER_IO_PROPERTIES_PROPERTY); + + DOCKER_JAVA_PROPERTIES); if (usersDockerPropertiesFile.isFile()) { try { final FileInputStream in = new FileInputStream(usersDockerPropertiesFile); @@ -146,27 +187,20 @@ private static Properties overrideDockerPropertiesWithEnv(Properties properties, overriddenProperties.putAll(properties); // special case which is a sensible default - if (env.containsKey(DOCKER_HOST_PROPERTY)) { - overriddenProperties.setProperty(DOCKER_IO_URL_PROPERTY, - env.get(DOCKER_HOST_PROPERTY).replace("tcp", protocol(env))); + if (env.containsKey(DOCKER_HOST)) { + overriddenProperties.setProperty(DOCKER_HOST, env.get(DOCKER_HOST)); } for (Map.Entry envEntry : env.entrySet()) { String envKey = envEntry.getKey(); - if (ENV_NAME_TO_IO_NAME.containsKey(envKey)) { - overriddenProperties.setProperty(ENV_NAME_TO_IO_NAME.get(envKey), envEntry.getValue()); + if (configKeys.contains(envKey)) { + overriddenProperties.setProperty(envKey, envEntry.getValue()); } } return overriddenProperties; } - private static String protocol(Map env) { - // if this is set, we assume we need SSL - return env.containsKey(DOCKER_CERT_PATH_PROPERTY) || "1".equals(env.get(DOCKER_VERIFY_TLS_PROPERTY)) ? "https" - : "http"; - } - /** * Creates a new Properties object containing values overridden from the System properties * @@ -178,10 +212,7 @@ private static Properties overrideDockerPropertiesWithSystemProperties(Propertie Properties overriddenProperties = new Properties(); overriddenProperties.putAll(p); - for (String key : new String[] { DOCKER_IO_URL_PROPERTY, DOCKER_IO_VERSION_PROPERTY, - DOCKER_IO_USERNAME_PROPERTY, DOCKER_IO_PASSWORD_PROPERTY, DOCKER_IO_EMAIL_PROPERTY, - DOCKER_IO_SERVER_ADDRESS_PROPERTY, DOCKER_IO_DOCKER_CERT_PATH_PROPERTY, - DOCKER_IO_DOCKER_CFG_PATH_PROPERTY, }) { + for (String key : configKeys) { if (systemProperties.containsKey(key)) { overriddenProperties.setProperty(key, systemProperties.getProperty(key)); } @@ -204,50 +235,55 @@ static DockerClientConfigBuilder createDefaultConfigBuilder(Map return new DockerClientConfigBuilder().withProperties(properties); } - public URI getUri() { - return uri; + public URI getDockerHost() { + return dockerHost; } - public void setUri(URI uri) { - this.uri = uri; + public void setDockerHost(URI dockerHost) { + this.dockerHost = dockerHost; } - public RemoteApiVersion getVersion() { - return version; + public RemoteApiVersion getApiVersion() { + return apiVersion; } - public String getUsername() { - return username; + public String getRegistryUsername() { + return registryUsername; } - public String getPassword() { - return password; + public String getRegistryPassword() { + return registryPassword; } - public String getEmail() { - return email; + public String getRegistryEmail() { + return registryEmail; } - public String getServerAddress() { - return serverAddress; + public String getRegistryUrl() { + return registryUrl; } - public SSLConfig getSslConfig() { - return sslConfig; + public String getDockerConfig() { + return dockerConfig; } - public String getDockerCfgPath() { - return dockerCfgPath; + public String getDockerCertPath() { + return dockerCertPath; + } + + public boolean getDockerTlsVerify() { + return dockerTlsVerify; } private AuthConfig getAuthConfig() { AuthConfig authConfig = null; - if (getUsername() != null && getPassword() != null && getEmail() != null && getServerAddress() != null) { + if (getRegistryUsername() != null && getRegistryPassword() != null && getRegistryEmail() != null + && getRegistryUrl() != null) { authConfig = new AuthConfig(); - authConfig.setUsername(getUsername()); - authConfig.setPassword(getPassword()); - authConfig.setEmail(getEmail()); - authConfig.setServerAddress(getServerAddress()); + authConfig.setUsername(getRegistryUsername()); + authConfig.setPassword(getRegistryPassword()); + authConfig.setEmail(getRegistryEmail()); + authConfig.setServerAddress(getRegistryUrl()); } return authConfig; } @@ -255,12 +291,12 @@ private AuthConfig getAuthConfig() { public AuthConfig effectiveAuthConfig(String imageName) { AuthConfig authConfig = null; - String dockerCfgFile = getDockerCfgPath(); + File dockerCfgFile = new File(getDockerConfig() + File.separator + DOCKER_CFG); - if (dockerCfgFile != null && imageName != null) { + if (dockerCfgFile.exists() && dockerCfgFile.isFile() && imageName != null) { AuthConfigFile authConfigFile; try { - authConfigFile = AuthConfigFile.loadConfig(new File(dockerCfgFile)); + authConfigFile = AuthConfigFile.loadConfig(dockerCfgFile); } catch (IOException e) { throw new DockerClientException("Failed to parse dockerCfgFile", e); } @@ -279,11 +315,11 @@ public AuthConfig effectiveAuthConfig(String imageName) { } public AuthConfigurations getAuthConfigurations() { - String dockerCfgFile = getDockerCfgPath(); - if (dockerCfgFile != null) { + File dockerCfgFile = new File(getDockerConfig() + File.separator + DOCKER_CFG); + if (dockerCfgFile.exists() && dockerCfgFile.isFile()) { AuthConfigFile authConfigFile; try { - authConfigFile = AuthConfigFile.loadConfig(new File(dockerCfgFile)); + authConfigFile = AuthConfigFile.loadConfig(dockerCfgFile); } catch (IOException e) { throw new DockerClientException("Failed to parse dockerCfgFile", e); } @@ -303,121 +339,92 @@ public boolean equals(Object o) { DockerClientConfig that = (DockerClientConfig) o; - if (sslConfig != null ? !sslConfig.equals(that.sslConfig) : that.sslConfig != null) - return false; - if (dockerCfgPath != null ? !dockerCfgPath.equals(that.dockerCfgPath) : that.dockerCfgPath != null) - return false; - if (email != null ? !email.equals(that.email) : that.email != null) - return false; - if (password != null ? !password.equals(that.password) : that.password != null) - return false; - if (serverAddress != null ? !serverAddress.equals(that.serverAddress) : that.serverAddress != null) - return false; - if (uri != null ? !uri.equals(that.uri) : that.uri != null) - return false; - if (username != null ? !username.equals(that.username) : that.username != null) - return false; - if (version != null ? !version.equals(that.version) : that.version != null) - return false; - - return true; + return EqualsBuilder.reflectionEquals(this, that); } @Override public int hashCode() { - int result = uri != null ? uri.hashCode() : 0; - result = 31 * result + (version != null ? version.hashCode() : 0); - result = 31 * result + (username != null ? username.hashCode() : 0); - result = 31 * result + (password != null ? password.hashCode() : 0); - result = 31 * result + (email != null ? email.hashCode() : 0); - result = 31 * result + (serverAddress != null ? serverAddress.hashCode() : 0); - result = 31 * result + (dockerCfgPath != null ? dockerCfgPath.hashCode() : 0); - result = 31 * result + (sslConfig != null ? sslConfig.hashCode() : 0); - return result; + return HashCodeBuilder.reflectionHashCode(this); } @Override public String toString() { - return "DockerClientConfig{" + "uri=" + uri + ", version='" + version + '\'' + ", username='" + username + '\'' - + ", password='" + password + '\'' + ", email='" + email + '\'' + ", serverAddress='" + serverAddress - + '\'' + ", dockerCfgPath='" + dockerCfgPath + '\'' + ", sslConfig='" + sslConfig + '\'' + '}'; + return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } public static class DockerClientConfigBuilder { - private URI uri; + private URI dockerHost; - private String version, username, password, email, serverAddress, dockerCfgPath; + private String apiVersion, registryUsername, registryPassword, registryEmail, registryUrl, dockerConfig, + dockerCertPath; - private SSLConfig sslConfig; + private boolean dockerTlsVerify; /** * This will set all fields in the builder to those contained in the Properties object. The Properties object - * should contain the following docker.io.* keys: url, version, username, password, email, dockerCertPath, and - * dockerCfgPath. If docker.io.readTimeout or docker.io.enableLoggingFilter are not contained, they will be set - * to 1000 and true, respectively. + * should contain the following docker-java configuration keys: DOCKER_HOST, DOCKER_TLS_VERIFY, api.version, + * registry.username, registry.password, registry.email, DOCKER_CERT_PATH, and DOCKER_CONFIG. */ public DockerClientConfigBuilder withProperties(Properties p) { - return withUri(p.getProperty(DOCKER_IO_URL_PROPERTY)) - .withVersion(p.getProperty(DOCKER_IO_VERSION_PROPERTY)) - .withUsername(p.getProperty(DOCKER_IO_USERNAME_PROPERTY)) - .withPassword(p.getProperty(DOCKER_IO_PASSWORD_PROPERTY)) - .withEmail(p.getProperty(DOCKER_IO_EMAIL_PROPERTY)) - .withServerAddress(p.getProperty(DOCKER_IO_SERVER_ADDRESS_PROPERTY)) - .withDockerCertPath(p.getProperty(DOCKER_IO_DOCKER_CERT_PATH_PROPERTY)) - .withDockerCfgPath(p.getProperty(DOCKER_IO_DOCKER_CFG_PATH_PROPERTY)); + return withDockerHost(p.getProperty(DOCKER_HOST)).withDockerTlsVerify(p.getProperty(DOCKER_TLS_VERIFY)) + .withDockerConfig(p.getProperty(DOCKER_CONFIG)).withDockerCertPath(p.getProperty(DOCKER_CERT_PATH)) + .withApiVersion(p.getProperty(API_VERSION)).withRegistryUsername(p.getProperty(REGISTRY_USERNAME)) + .withRegistryPassword(p.getProperty(REGISTRY_PASSWORD)) + .withRegistryEmail(p.getProperty(REGISTRY_EMAIL)).withRegistryUrl(p.getProperty(REGISTRY_URL)); } - public final DockerClientConfigBuilder withUri(String uri) { - checkNotNull(uri, "uri was not specified"); - this.uri = URI.create(uri); + /** + * configure DOCKER_HOST + */ + public final DockerClientConfigBuilder withDockerHost(String dockerHost) { + checkNotNull(dockerHost, "uri was not specified"); + this.dockerHost = URI.create(dockerHost); return this; } - public final DockerClientConfigBuilder withVersion(String version) { - this.version = version; + public final DockerClientConfigBuilder withApiVersion(String apiVersion) { + this.apiVersion = apiVersion; return this; } - public final DockerClientConfigBuilder withUsername(String username) { - this.username = username; + public final DockerClientConfigBuilder withRegistryUsername(String registryUsername) { + this.registryUsername = registryUsername; return this; } - public final DockerClientConfigBuilder withPassword(String password) { - this.password = password; + public final DockerClientConfigBuilder withRegistryPassword(String registryPassword) { + this.registryPassword = registryPassword; return this; } - public final DockerClientConfigBuilder withEmail(String email) { - this.email = email; + public final DockerClientConfigBuilder withRegistryEmail(String registryEmail) { + this.registryEmail = registryEmail; return this; } - public DockerClientConfigBuilder withServerAddress(String serverAddress) { - this.serverAddress = serverAddress; + public DockerClientConfigBuilder withRegistryUrl(String registryUrl) { + this.registryUrl = registryUrl; return this; } public final DockerClientConfigBuilder withDockerCertPath(String dockerCertPath) { - if (dockerCertPath != null) { - this.sslConfig = new LocalDirectorySSLConfig(dockerCertPath); - } + this.dockerCertPath = dockerCertPath; return this; } - public final DockerClientConfigBuilder withDockerCfgPath(String dockerCfgPath) { - this.dockerCfgPath = dockerCfgPath; + public final DockerClientConfigBuilder withDockerConfig(String dockerConfig) { + this.dockerConfig = dockerConfig; return this; } - public final DockerClientConfigBuilder withSSLConfig(SSLConfig config) { - this.sslConfig = config; + public final DockerClientConfigBuilder withDockerTlsVerify(String dockerTlsVerify) { + this.dockerTlsVerify = BooleanUtils.toBoolean(dockerTlsVerify.trim(), "1", "0"); return this; } public DockerClientConfig build() { - return new DockerClientConfig(uri, version, username, password, email, serverAddress, dockerCfgPath, - sslConfig); + return new DockerClientConfig(dockerHost, dockerConfig, apiVersion, registryUrl, registryUsername, + registryPassword, registryEmail, dockerCertPath, dockerTlsVerify); } } diff --git a/src/main/java/com/github/dockerjava/core/DockerClientImpl.java b/src/main/java/com/github/dockerjava/core/DockerClientImpl.java index ede135613..0ee71909c 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientImpl.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientImpl.java @@ -132,7 +132,7 @@ private DockerClientImpl(DockerClientConfig dockerClientConfig) { } private static DockerClientConfig configWithServerUrl(String serverUrl) { - return DockerClientConfig.createDefaultConfigBuilder().withUri(serverUrl).build(); + return DockerClientConfig.createDefaultConfigBuilder().withDockerHost(serverUrl).build(); } public static DockerClientImpl getInstance() { @@ -161,14 +161,14 @@ private DockerCmdExecFactory getDockerCmdExecFactory() { @Override public AuthConfig authConfig() { - checkNotNull(dockerClientConfig.getUsername(), "Configured username is null."); - checkNotNull(dockerClientConfig.getServerAddress(), "Configured serverAddress is null."); + checkNotNull(dockerClientConfig.getRegistryUsername(), "Configured username is null."); + checkNotNull(dockerClientConfig.getRegistryUrl(), "Configured serverAddress is null."); AuthConfig authConfig = new AuthConfig(); - authConfig.setUsername(dockerClientConfig.getUsername()); - authConfig.setPassword(dockerClientConfig.getPassword()); - authConfig.setEmail(dockerClientConfig.getEmail()); - authConfig.setServerAddress(dockerClientConfig.getServerAddress()); + authConfig.setUsername(dockerClientConfig.getRegistryUsername()); + authConfig.setPassword(dockerClientConfig.getRegistryPassword()); + authConfig.setEmail(dockerClientConfig.getRegistryEmail()); + authConfig.setServerAddress(dockerClientConfig.getRegistryUrl()); return authConfig; } diff --git a/src/main/java/com/github/dockerjava/jaxrs/AbstrDockerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/AbstrDockerCmdExec.java index d8c84663c..750114b11 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/AbstrDockerCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/AbstrDockerCmdExec.java @@ -46,7 +46,7 @@ protected String registryAuth(AuthConfig authConfig) { protected String registryConfigs(AuthConfigurations authConfigs) { try { final String json; - if (dockerClientConfig.getVersion().isGreaterOrEqual(RemoteApiVersion.VERSION_1_19)) { + if (dockerClientConfig.getApiVersion().isGreaterOrEqual(RemoteApiVersion.VERSION_1_19)) { json = new ObjectMapper().writeValueAsString(authConfigs.getConfigs()); } else { json = new ObjectMapper().writeValueAsString(authConfigs); diff --git a/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java b/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java index bbd71ba38..337b3e790 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java +++ b/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java @@ -2,6 +2,33 @@ import static com.google.common.base.Preconditions.checkNotNull; +import java.io.IOException; +import java.net.InetSocketAddress; +import java.net.Proxy; +import java.net.ProxySelector; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.List; + +import javax.net.ssl.SSLContext; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.ClientRequestFilter; +import javax.ws.rs.client.ClientResponseFilter; +import javax.ws.rs.client.WebTarget; + +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.glassfish.jersey.CommonProperties; +import org.glassfish.jersey.apache.connector.ApacheClientProperties; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.client.ClientProperties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.github.dockerjava.api.command.AttachContainerCmd; import com.github.dockerjava.api.command.AuthCmd; @@ -54,34 +81,11 @@ import com.github.dockerjava.api.command.WaitContainerCmd; import com.github.dockerjava.api.exception.DockerClientException; import com.github.dockerjava.core.DockerClientConfig; +import com.github.dockerjava.core.LocalDirectorySSLConfig; import com.github.dockerjava.jaxrs.connector.ApacheConnectorProvider; import com.github.dockerjava.jaxrs.filter.JsonClientFilter; import com.github.dockerjava.jaxrs.filter.ResponseStatusExceptionFilter; import com.github.dockerjava.jaxrs.filter.SelectiveLoggingFilter; -import org.apache.http.config.RegistryBuilder; -import org.apache.http.conn.socket.ConnectionSocketFactory; -import org.apache.http.conn.socket.PlainConnectionSocketFactory; -import org.apache.http.conn.ssl.SSLConnectionSocketFactory; -import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; -import org.glassfish.jersey.CommonProperties; -import org.glassfish.jersey.apache.connector.ApacheClientProperties; -import org.glassfish.jersey.client.ClientConfig; -import org.glassfish.jersey.client.ClientProperties; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.net.ssl.SSLContext; -import javax.ws.rs.client.Client; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.ClientRequestFilter; -import javax.ws.rs.client.ClientResponseFilter; -import javax.ws.rs.client.WebTarget; -import java.io.IOException; -import java.net.InetSocketAddress; -import java.net.Proxy; -import java.net.ProxySelector; -import java.net.URI; -import java.util.List; //import org.glassfish.jersey.apache.connector.ApacheConnectorProvider; // see https://github.com/docker-java/docker-java/issues/196 @@ -108,6 +112,8 @@ public class DockerCmdExecFactoryImpl implements DockerCmdExecFactory { private DockerClientConfig dockerClientConfig; + SSLContext sslContext = null; + @Override public void init(DockerClientConfig dockerClientConfig) { checkNotNull(dockerClientConfig, "config was not specified"); @@ -146,15 +152,19 @@ public void init(DockerClientConfig dockerClientConfig) { } } - URI originalUri = dockerClientConfig.getUri(); + URI originalUri = dockerClientConfig.getDockerHost(); - SSLContext sslContext = null; String protocol = null; - if (dockerClientConfig.getSslConfig() != null) { + if (dockerClientConfig.getDockerTlsVerify()) { protocol = "https"; + try { - sslContext = dockerClientConfig.getSslConfig().getSSLContext(); + + if (sslContext == null) { + sslContext = new LocalDirectorySSLConfig(dockerClientConfig.getDockerCertPath()).getSSLContext(); + } + } catch (Exception ex) { throw new DockerClientException("Error in SSL Configuration", ex); } @@ -163,8 +173,13 @@ public void init(DockerClientConfig dockerClientConfig) { } if (originalUri.getScheme().equals("unix")) { - dockerClientConfig.setUri(UnixConnectionSocketFactory.sanitizeUri(originalUri)); + dockerClientConfig.setDockerHost(UnixConnectionSocketFactory.sanitizeUri(originalUri)); } else { + try { + originalUri = new URI(originalUri.toString().replaceFirst("tcp", protocol)); + } catch (URISyntaxException e) { + throw new RuntimeException(e); + } configureProxy(clientConfig, protocol); } @@ -190,12 +205,12 @@ public void init(DockerClientConfig dockerClientConfig) { client = clientBuilder.build(); - baseResource = client.target(dockerClientConfig.getUri()).path(dockerClientConfig.getVersion().asWebPathPart()); + baseResource = client.target(originalUri.toString()).path(dockerClientConfig.getApiVersion().asWebPathPart()); } private void configureProxy(ClientConfig clientConfig, String protocol) { - List proxies = ProxySelector.getDefault().select(dockerClientConfig.getUri()); + List proxies = ProxySelector.getDefault().select(dockerClientConfig.getDockerHost()); for (Proxy proxy : proxies) { InetSocketAddress address = (InetSocketAddress) proxy.address(); @@ -490,6 +505,12 @@ public void close() throws IOException { client.close(); } + @Override + public DockerCmdExecFactoryImpl withSSLContext(SSLContext sslContext) { + this.sslContext = sslContext; + return this; + } + public DockerCmdExecFactoryImpl withReadTimeout(Integer readTimeout) { this.readTimeout = readTimeout; return this; diff --git a/src/main/java/com/github/dockerjava/netty/DockerCmdExecFactoryImpl.java b/src/main/java/com/github/dockerjava/netty/DockerCmdExecFactoryImpl.java index ee3b50101..d26cf70c0 100644 --- a/src/main/java/com/github/dockerjava/netty/DockerCmdExecFactoryImpl.java +++ b/src/main/java/com/github/dockerjava/netty/DockerCmdExecFactoryImpl.java @@ -51,6 +51,7 @@ import com.github.dockerjava.api.command.WaitContainerCmd; import com.github.dockerjava.core.DockerClientConfig; import com.github.dockerjava.core.DockerClientImpl; +import com.github.dockerjava.core.LocalDirectorySSLConfig; import com.github.dockerjava.netty.exec.AttachContainerCmdExec; import com.github.dockerjava.netty.exec.AuthCmdExec; import com.github.dockerjava.netty.exec.BuildImageCmdExec; @@ -99,6 +100,7 @@ import com.github.dockerjava.netty.exec.UnpauseContainerCmdExec; import com.github.dockerjava.netty.exec.VersionCmdExec; import com.github.dockerjava.netty.exec.WaitContainerCmdExec; + import io.netty.bootstrap.Bootstrap; import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; @@ -113,11 +115,13 @@ import io.netty.handler.codec.http.HttpClientCodec; import io.netty.handler.logging.LoggingHandler; import io.netty.handler.ssl.SslHandler; + import org.bouncycastle.jce.provider.BouncyCastleProvider; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLParameters; + import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -157,6 +161,8 @@ public class DockerCmdExecFactoryImpl implements DockerCmdExecFactory { private NettyInitializer nettyInitializer; + private SSLContext sslContext = null; + private ChannelProvider channelProvider = new ChannelProvider() { @Override public Channel getChannel() { @@ -173,11 +179,11 @@ public void init(DockerClientConfig dockerClientConfig) { bootstrap = new Bootstrap(); - String scheme = dockerClientConfig.getUri().getScheme(); + String scheme = dockerClientConfig.getDockerHost().getScheme(); if ("unix".equals(scheme)) { nettyInitializer = new UnixDomainSocketInitializer(); - } else if (scheme.startsWith("http")) { + } else if ("tcp".equals(scheme)) { nettyInitializer = new InetSocketInitializer(); } @@ -248,8 +254,8 @@ protected void initChannel(final SocketChannel channel) throws Exception { @Override public Channel connect(Bootstrap bootstrap) throws InterruptedException { - String host = dockerClientConfig.getUri().getHost(); - int port = dockerClientConfig.getUri().getPort(); + String host = dockerClientConfig.getDockerHost().getHost(); + int port = dockerClientConfig.getDockerHost().getPort(); if (port == -1) { throw new RuntimeException("no port configured for " + host); @@ -257,7 +263,7 @@ public Channel connect(Bootstrap bootstrap) throws InterruptedException { Channel channel = bootstrap.connect(host, port).sync().channel(); - if ("https".equals(dockerClientConfig.getUri().getScheme())) { + if (dockerClientConfig.getDockerTlsVerify()) { final SslHandler ssl = initSsl(dockerClientConfig); if (ssl != null) { @@ -272,10 +278,12 @@ private SslHandler initSsl(DockerClientConfig dockerClientConfig) { SslHandler ssl = null; try { - String host = dockerClientConfig.getUri().getHost(); - int port = dockerClientConfig.getUri().getPort(); + String host = dockerClientConfig.getDockerHost().getHost(); + int port = dockerClientConfig.getDockerHost().getPort(); - SSLContext sslContext = dockerClientConfig.getSslConfig().getSSLContext(); + if(sslContext == null) { + sslContext = new LocalDirectorySSLConfig(dockerClientConfig.getDockerCertPath()).getSSLContext(); + } SSLEngine engine = sslContext.createSSLEngine(host, port); engine.setUseClientMode(true); @@ -552,6 +560,13 @@ public void close() throws IOException { eventLoopGroup.shutdownGracefully(); } + @Override + public DockerCmdExecFactory withSSLContext(SSLContext sslContext) { + this.sslContext = sslContext; + return this; + } + + private WebTarget getBaseResource() { return new WebTarget(channelProvider); } diff --git a/src/main/java/com/github/dockerjava/netty/exec/AbstrDockerCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/AbstrDockerCmdExec.java index e8b3597c9..5cf36a0a4 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/AbstrDockerCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/AbstrDockerCmdExec.java @@ -45,7 +45,7 @@ protected String registryAuth(AuthConfig authConfig) { protected String registryConfigs(AuthConfigurations authConfigs) { try { final String json; - if (dockerClientConfig.getVersion().isGreaterOrEqual(RemoteApiVersion.VERSION_1_19)) { + if (dockerClientConfig.getApiVersion().isGreaterOrEqual(RemoteApiVersion.VERSION_1_19)) { json = new ObjectMapper().writeValueAsString(authConfigs.getConfigs()); } else { json = new ObjectMapper().writeValueAsString(authConfigs); diff --git a/src/main/resources/docker-java.properties b/src/main/resources/docker-java.properties new file mode 100644 index 000000000..ea85f6c01 --- /dev/null +++ b/src/main/resources/docker-java.properties @@ -0,0 +1,17 @@ +#docker.io.url=https://localhost:2376 +#docker.io.dockerCertPath=${user.home}/.docker +#docker.io.dockerCfgPath=${user.home}/.dockercfg +#docker.io.username=${user.name} +#docker.io.serverAddress=https://index.docker.io/v1/ +# +DOCKER_HOST=tcp://localhost:2376 +DOCKER_TLS_VERIFY=1 +DOCKER_CONFIG=${user.home}/.docker +DOCKER_CERT_PATH=${user.home}/.docker/certs + +api.version= +registry.url=https://index.docker.io/v1/ +registry.username=${user.name} +#registry.password= +#registry.email= + diff --git a/src/main/resources/docker.io.properties b/src/main/resources/docker.io.properties deleted file mode 100644 index 719500e24..000000000 --- a/src/main/resources/docker.io.properties +++ /dev/null @@ -1,5 +0,0 @@ -docker.io.url=https://localhost:2376 -docker.io.dockerCertPath=${user.home}/.docker -docker.io.dockerCfgPath=${user.home}/.dockercfg -docker.io.username=${user.name} -docker.io.serverAddress=https://index.docker.io/v1/ diff --git a/src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java b/src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java index 074c19ad9..5f63207d1 100644 --- a/src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java +++ b/src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java @@ -74,12 +74,12 @@ private DockerClientConfig config() { protected DockerClientConfig config(String password) { DockerClientConfig.DockerClientConfigBuilder builder = DockerClientConfig.createDefaultConfigBuilder() - .withServerAddress("https://index.docker.io/v1/"); + .withRegistryUrl("https://index.docker.io/v1/"); if (password != null) { - builder = builder.withPassword(password); + builder = builder.withRegistryPassword(password); } - return builder.withVersion(apiVersion).build(); + return builder.withApiVersion(apiVersion).build(); } public void afterTest() { diff --git a/src/test/java/com/github/dockerjava/core/DockerClientConfigTest.java b/src/test/java/com/github/dockerjava/core/DockerClientConfigTest.java index 8bb1c3e39..e87254b88 100644 --- a/src/test/java/com/github/dockerjava/core/DockerClientConfigTest.java +++ b/src/test/java/com/github/dockerjava/core/DockerClientConfigTest.java @@ -1,8 +1,8 @@ package com.github.dockerjava.core; -import com.github.dockerjava.api.model.AuthConfig; -import org.apache.commons.lang.SerializationUtils; -import org.testng.annotations.Test; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; +import static org.testng.Assert.assertEquals; import java.net.URI; import java.util.Collections; @@ -10,113 +10,57 @@ import java.util.Map; import java.util.Properties; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.equalTo; -import static org.testng.Assert.assertEquals; +import org.apache.commons.lang.SerializationUtils; +import org.testng.annotations.Test; + +import com.github.dockerjava.api.exception.DockerClientException; +import com.github.dockerjava.api.model.AuthConfig; public class DockerClientConfigTest { public static final DockerClientConfig EXAMPLE_CONFIG = newExampleConfig(); private static DockerClientConfig newExampleConfig() { - return new DockerClientConfig(URI.create("http://foo"), "bar", "baz", "qux", "blam", "wham", "flam", - new LocalDirectorySSLConfig("flim")); - } - @Test - public void string() throws Exception { - assertEquals( - EXAMPLE_CONFIG.toString(), - "DockerClientConfig{uri=http://foo, version='{UNKNOWN_VERSION}', username='baz', password='qux', email='blam', serverAddress='wham', dockerCfgPath='flam', sslConfig='LocalDirectorySSLConfig{dockerCertPath=flim}'}"); - } + String dockerCertPath = dockerCertPath(); - @Test - public void equals() throws Exception { - assertEquals(EXAMPLE_CONFIG, newExampleConfig()); + return new DockerClientConfig(URI.create("tcp://foo"), "dockerConfig", "apiVersion", "registryUrl", "registryUsername", "registryPassword", "registryEmail", + dockerCertPath, true); } - @Test - public void environmentDockerHost() throws Exception { - - // given docker host in env - Map env = new HashMap(); - env.put("DOCKER_HOST", "tcp://baz:8768"); - // and it looks to be SSL disabled - env.remove("DOCKER_CERT_PATH"); - - // when you build a config - DockerClientConfig config = buildConfig(env, new Properties()); - - // then the URL is that value with "http" instead of "tcp" - assertEquals(config.getUri(), URI.create("http://baz:8768")); + private static String homeDir() { + return "target/test-classes/someHomeDir"; } - @Test - public void environmentDockerHostHttpsAutoDetectByCertPath() throws Exception { - - // given docker host in env - Map env = new HashMap(System.getenv()); - env.put("DOCKER_HOST", "tcp://bar:8768"); - // and it looks to be SSL enabled - env.put("DOCKER_CERT_PATH", "any value"); - - // when you build a config - DockerClientConfig config = buildConfig(env, new Properties()); - - // then the URL is that value with "tcp" changed to "https" - assertEquals(config.getUri(), URI.create("https://bar:8768")); + private static String dockerCertPath() { + return homeDir() + "/.docker"; } @Test - public void environmentDockerHostHttpsAutoDetectByTlsVerify() throws Exception { - - // given docker host in env - Map env = new HashMap(System.getenv()); - env.put("DOCKER_HOST", "tcp://bar:8768"); - // and it looks to be SSL enabled - env.put("DOCKER_TLS_VERIFY", "1"); - - // when you build a config - DockerClientConfig config = buildConfig(env, new Properties()); - - // then the URL is that value with "tcp" changed to "https" - assertEquals(config.getUri(), URI.create("https://bar:8768")); + public void equals() throws Exception { + assertEquals(EXAMPLE_CONFIG, newExampleConfig()); } @Test - public void environmentDockerHostWithInvalidTlsVerify() throws Exception { + public void environmentDockerHost() throws Exception { // given docker host in env - Map env = new HashMap(System.getenv()); - env.put("DOCKER_HOST", "tcp://bar:8768"); + Map env = new HashMap(); + env.put(DockerClientConfig.DOCKER_HOST, "tcp://baz:8768"); // and it looks to be SSL disabled env.remove("DOCKER_CERT_PATH"); - // and it has an invalid TLS_VERIFY value - env.put("DOCKER_TLS_VERIFY", "any value different from '1'"); - // when you build a config - DockerClientConfig config = buildConfig(env, new Properties()); - // then the URL is that value with "tcp" changed to "https" - assertEquals(config.getUri(), URI.create("http://bar:8768")); - } - - @Test - public void environmentDockerHostWithInvalidTlsVerifyButWithCertPath() throws Exception { - // given docker host in env - Map env = new HashMap(System.getenv()); - env.put("DOCKER_HOST", "tcp://bar:8768"); - // and it looks to be SSL enabled - env.put("DOCKER_CERT_PATH", "any value"); - // and it has an invalid TLS_VERIFY value - env.put("DOCKER_TLS_VERIFY", "any value different from '1'"); + // given default cert path + Properties systemProperties = new Properties(); + systemProperties.setProperty("user.name", "someUserName"); + systemProperties.setProperty("user.home", homeDir()); // when you build a config - DockerClientConfig config = buildConfig(env, new Properties()); + DockerClientConfig config = buildConfig(env, systemProperties); - // then the URL is that value with "tcp" changed to "https" - assertEquals(config.getUri(), URI.create("https://bar:8768")); + assertEquals(config.getDockerHost(), URI.create("tcp://baz:8768")); } @Test @@ -124,16 +68,16 @@ public void environment() throws Exception { // given a default config in env properties Map env = new HashMap(); - env.put("DOCKER_URL", "http://foo"); - env.put("DOCKER_VERSION", "bar"); - env.put("DOCKER_USERNAME", "baz"); - env.put("DOCKER_PASSWORD", "qux"); - env.put("DOCKER_EMAIL", "blam"); - env.put("DOCKER_SERVER_ADDRESS", "wham"); - env.put("DOCKER_CERT_PATH", "flim"); - env.put("DOCKER_CFG_PATH", "flam"); - env.put("DOCKER_READ_TIMEOUT", "877"); - env.put("DOCKER_LOGGING_FILTER_ENABLED", "false"); + env.put(DockerClientConfig.DOCKER_HOST, "tcp://foo"); + env.put(DockerClientConfig.API_VERSION, "apiVersion"); + env.put(DockerClientConfig.REGISTRY_USERNAME, "registryUsername"); + env.put(DockerClientConfig.REGISTRY_PASSWORD, "registryPassword"); + env.put(DockerClientConfig.REGISTRY_EMAIL, "registryEmail"); + env.put(DockerClientConfig.REGISTRY_URL, "registryUrl"); + env.put(DockerClientConfig.DOCKER_CONFIG, "dockerConfig"); + env.put(DockerClientConfig.DOCKER_CERT_PATH, dockerCertPath()); + env.put(DockerClientConfig.DOCKER_TLS_VERIFY, "1"); + // when you build a config DockerClientConfig config = buildConfig(env, new Properties()); @@ -152,18 +96,18 @@ public void defaults() throws Exception { // given default cert path Properties systemProperties = new Properties(); systemProperties.setProperty("user.name", "someUserName"); - systemProperties.setProperty("user.home", "someHomeDir"); + systemProperties.setProperty("user.home", homeDir()); // when you build config DockerClientConfig config = buildConfig(Collections. emptyMap(), systemProperties); // then the cert path is as expected - assertEquals(config.getUri(), URI.create("https://localhost:2376")); - assertEquals(config.getUsername(), "someUserName"); - assertEquals(config.getServerAddress(), AuthConfig.DEFAULT_SERVER_ADDRESS); - assertEquals(config.getVersion(), RemoteApiVersion.unknown()); - assertEquals(config.getDockerCfgPath(), "someHomeDir/.dockercfg"); - assertEquals(((LocalDirectorySSLConfig) config.getSslConfig()).getDockerCertPath(), "someHomeDir/.docker"); + assertEquals(config.getDockerHost(), URI.create("tcp://localhost:2376")); + assertEquals(config.getRegistryUsername(), "someUserName"); + assertEquals(config.getRegistryUrl(), AuthConfig.DEFAULT_SERVER_ADDRESS); + assertEquals(config.getApiVersion(), RemoteApiVersion.unknown()); + assertEquals(config.getDockerConfig(), homeDir() + "/.docker"); + assertEquals(config.getDockerCertPath(), homeDir() + "/.docker/certs"); } @Test @@ -171,14 +115,15 @@ public void systemProperties() throws Exception { // given system properties based on the example Properties systemProperties = new Properties(); - systemProperties.setProperty("docker.io.url", "http://foo"); - systemProperties.setProperty("docker.io.version", "bar"); - systemProperties.setProperty("docker.io.username", "baz"); - systemProperties.setProperty("docker.io.password", "qux"); - systemProperties.setProperty("docker.io.email", "blam"); - systemProperties.setProperty("docker.io.serverAddress", "wham"); - systemProperties.setProperty("docker.io.dockerCertPath", "flim"); - systemProperties.setProperty("docker.io.dockerCfgPath", "flam"); + systemProperties.put(DockerClientConfig.DOCKER_HOST, "tcp://foo"); + systemProperties.put(DockerClientConfig.API_VERSION, "apiVersion"); + systemProperties.put(DockerClientConfig.REGISTRY_USERNAME, "registryUsername"); + systemProperties.put(DockerClientConfig.REGISTRY_PASSWORD, "registryPassword"); + systemProperties.put(DockerClientConfig.REGISTRY_EMAIL, "registryEmail"); + systemProperties.put(DockerClientConfig.REGISTRY_URL, "registryUrl"); + systemProperties.put(DockerClientConfig.DOCKER_CONFIG, "dockerConfig"); + systemProperties.put(DockerClientConfig.DOCKER_CERT_PATH, dockerCertPath()); + systemProperties.put(DockerClientConfig.DOCKER_TLS_VERIFY, "1"); // when you build new config DockerClientConfig config = buildConfig(Collections. emptyMap(), systemProperties); @@ -195,4 +140,40 @@ public void serializableTest() { assertThat("Deserialized object mush match source object", deserialized, equalTo(EXAMPLE_CONFIG)); } + + @Test(expectedExceptions = DockerClientException.class) + public void testTlsVerifyAndCertPathNull() throws Exception { + new DockerClientConfig(URI.create("tcp://foo"), "dockerConfig", "apiVersion", "registryUrl", "registryUsername", "registryPassword", "registryEmail", + null, true); + } + + @Test(expectedExceptions = DockerClientException.class) + public void testTlsVerifyAndCertPathEmpty() throws Exception { + new DockerClientConfig(URI.create("tcp://foo"), "dockerConfig", "apiVersion", "registryUrl", "registryUsername", "registryPassword", "registryEmail", + "", true); + } + + @Test() + public void testTlsVerifyAndCertPath() throws Exception { + new DockerClientConfig(URI.create("tcp://foo"), "dockerConfig", "apiVersion", "registryUrl", "registryUsername", "registryPassword", "registryEmail", + dockerCertPath(), true); + } + + @Test(expectedExceptions = DockerClientException.class) + public void testWrongHostScheme() throws Exception { + new DockerClientConfig(URI.create("http://foo"), "dockerConfig", "apiVersion", "registryUrl", "registryUsername", "registryPassword", "registryEmail", + null, false); + } + + @Test() + public void testTcpHostScheme() throws Exception { + new DockerClientConfig(URI.create("tcp://foo"), "dockerConfig", "apiVersion", "registryUrl", "registryUsername", "registryPassword", "registryEmail", + null, false); + } + + @Test() + public void testUnixHostScheme() throws Exception { + new DockerClientConfig(URI.create("unix://foo"), "dockerConfig", "apiVersion", "registryUrl", "registryUsername", "registryPassword", "registryEmail", + null, false); + } } diff --git a/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java b/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java index c5a1e841c..62cfaa146 100644 --- a/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java +++ b/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java @@ -3,6 +3,8 @@ import static org.testng.Assert.assertEquals; import static org.testng.AssertJUnit.fail; +import java.net.URI; + import org.testng.annotations.Test; public class DockerClientImplTest { @@ -10,7 +12,7 @@ public class DockerClientImplTest { @Test public void configuredInstanceAuthConfig() throws Exception { // given a config with null serverAddress - DockerClientConfig dockerClientConfig = new DockerClientConfig(null, null, "", "", "", null, null, null); + DockerClientConfig dockerClientConfig = new DockerClientConfig(URI.create("tcp://foo"), null, null, null, "", "", "", null, false); DockerClientImpl dockerClient = DockerClientImpl.getInstance(dockerClientConfig); // when we get the auth config @@ -25,6 +27,9 @@ public void configuredInstanceAuthConfig() throws Exception { @Test public void defaultInstanceAuthConfig() throws Exception { + + System.setProperty("user.home", "target/test-classes/someHomeDir"); + // given a default client DockerClientImpl dockerClient = DockerClientImpl.getInstance(); diff --git a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java index 50860789b..a5dfcfbc5 100644 --- a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java +++ b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java @@ -5,6 +5,8 @@ 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; @@ -367,4 +369,9 @@ public List getVolumeNames() { public List getNetworkIds() { return new ArrayList<>(networkIds); } + + @Override + public DockerCmdExecFactory withSSLContext(SSLContext sslContext) { + return delegate.withSSLContext(sslContext); + } } diff --git a/src/test/resources/someHomeDir/.docker/certs/dummy.txt b/src/test/resources/someHomeDir/.docker/certs/dummy.txt new file mode 100644 index 000000000..e69de29bb diff --git a/src/test/resources/someHomeDir/.docker/config.json b/src/test/resources/someHomeDir/.docker/config.json new file mode 100644 index 000000000..630394039 --- /dev/null +++ b/src/test/resources/someHomeDir/.docker/config.json @@ -0,0 +1,9 @@ +{ + "auths":{ + "https://index.docker.io/v1/":{ + "auth":"XXXX=", + "email":"foo.bar@test.com" + } + + } +} \ No newline at end of file From 7d9ed5d154d38c2ea7f6e3da2f649c6cde9fdb9b Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 19:13:56 +0300 Subject: [PATCH 010/878] Checkstyle: common coding problems. Some hashes probably need to be reviewed. --- .../com/github/dockerjava/api/model/Ports.java | 1 + .../com/github/dockerjava/core/NameParser.java | 1 + .../dockerjava/jaxrs/filter/LoggingFilter.java | 10 +++++----- .../netty/DockerCmdExecFactoryImpl.java | 12 ++++++------ .../resources/checkstyle/checkstyle-config.xml | 15 +++++++++++++++ 5 files changed, 28 insertions(+), 11 deletions(-) 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 43ad92585..6bbb05fa2 100644 --- a/src/main/java/com/github/dockerjava/api/model/Ports.java +++ b/src/main/java/com/github/dockerjava/api/model/Ports.java @@ -33,6 +33,7 @@ * @see HostConfig#getPortBindings() * @see NetworkSettings#getPorts() */ +@SuppressWarnings(value = "checkstyle:equalshashcode") //FIXME? @JsonDeserialize(using = Ports.Deserializer.class) @JsonSerialize(using = Ports.Serializer.class) public class Ports { diff --git a/src/main/java/com/github/dockerjava/core/NameParser.java b/src/main/java/com/github/dockerjava/core/NameParser.java index 3c58eb331..77cc6bb06 100644 --- a/src/main/java/com/github/dockerjava/core/NameParser.java +++ b/src/main/java/com/github/dockerjava/core/NameParser.java @@ -12,6 +12,7 @@ import com.github.dockerjava.api.model.AuthConfig; import com.github.dockerjava.core.exception.InvalidRepositoryNameException; +@SuppressWarnings(value = "checkstyle:equalshashcode") public class NameParser { //CHECKSTYLE:OFF private static final int RepositoryNameTotalLengthMax = 255; diff --git a/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java b/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java index ccd6500d1..76666fe4e 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java @@ -109,7 +109,7 @@ public int compare(final Map.Entry> o1, final Map.Entry() { @Override protected void initChannel(final UnixChannel channel) throws Exception { channel.pipeline().addLast(new HttpClientCodec()); } }); - return eventLoopGroup; + return epollEventLoopGroup; } @Override @@ -225,7 +225,7 @@ public Channel connect(Bootstrap bootstrap) throws InterruptedException { private class InetSocketInitializer implements NettyInitializer { @Override public EventLoopGroup init(Bootstrap bootstrap, final DockerClientConfig dockerClientConfig) { - EventLoopGroup eventLoopGroup = new NioEventLoopGroup(); + EventLoopGroup nioEventLoopGroup = new NioEventLoopGroup(); InetAddress addr = InetAddress.getLoopbackAddress(); @@ -233,7 +233,7 @@ public EventLoopGroup init(Bootstrap bootstrap, final DockerClientConfig dockerC Security.addProvider(new BouncyCastleProvider()); - bootstrap.group(eventLoopGroup).channel(NioSocketChannel.class) + bootstrap.group(nioEventLoopGroup).channel(NioSocketChannel.class) .handler(new ChannelInitializer() { @Override protected void initChannel(final SocketChannel channel) throws Exception { @@ -243,7 +243,7 @@ protected void initChannel(final SocketChannel channel) throws Exception { } }); - return eventLoopGroup; + return nioEventLoopGroup; } @Override diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index a97064845..3c353fc1a 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -132,6 +132,21 @@ + + + + + + + + + + + + + + + From e835537d195c9cdf55058fa95542621fc7671265 Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 19:18:41 +0300 Subject: [PATCH 011/878] Checkstyle: class design. Utility classes should not have a public or default constructor. --- .../java/com/github/dockerjava/core/GoLangFileMatch.java | 2 ++ src/main/java/com/github/dockerjava/core/NameParser.java | 3 +++ .../com/github/dockerjava/core/util/FiltersEncoder.java | 2 ++ src/test/resources/checkstyle/checkstyle-config.xml | 7 +++++++ 4 files changed, 14 insertions(+) diff --git a/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java b/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java index 2f29789ea..7bed65c5b 100644 --- a/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java +++ b/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java @@ -44,6 +44,8 @@ * */ public class GoLangFileMatch { + private GoLangFileMatch() { + } public static final boolean IS_WINDOWS = File.separatorChar == '\\'; diff --git a/src/main/java/com/github/dockerjava/core/NameParser.java b/src/main/java/com/github/dockerjava/core/NameParser.java index 77cc6bb06..5027422fd 100644 --- a/src/main/java/com/github/dockerjava/core/NameParser.java +++ b/src/main/java/com/github/dockerjava/core/NameParser.java @@ -14,6 +14,9 @@ @SuppressWarnings(value = "checkstyle:equalshashcode") public class NameParser { + private NameParser() { + } + //CHECKSTYLE:OFF private static final int RepositoryNameTotalLengthMax = 255; diff --git a/src/main/java/com/github/dockerjava/core/util/FiltersEncoder.java b/src/main/java/com/github/dockerjava/core/util/FiltersEncoder.java index 164528a8c..280daad45 100644 --- a/src/main/java/com/github/dockerjava/core/util/FiltersEncoder.java +++ b/src/main/java/com/github/dockerjava/core/util/FiltersEncoder.java @@ -16,6 +16,8 @@ * */ public class FiltersEncoder { + private FiltersEncoder() { + } private static final ObjectMapper OBJECT_MAPPER = new JacksonJaxbJsonProvider().locateMapper(Map.class, MediaType.APPLICATION_JSON_TYPE); diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index 3c353fc1a..2906a76ad 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -148,6 +148,13 @@ + + + + + + + From b0e2853feca000af1ec95deb2f0976eb3ddf71aa Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 19:20:55 +0300 Subject: [PATCH 012/878] Checkstyle: other checks. --- src/test/resources/checkstyle/checkstyle-config.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index 2906a76ad..02f55585f 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -155,6 +155,16 @@ + + + + + + + + + + From d5d77ad81c355cba305d76e138d500706dcf339b Mon Sep 17 00:00:00 2001 From: Kanstantsin Shautsou Date: Sun, 31 Jan 2016 19:33:16 +0300 Subject: [PATCH 013/878] checkstyle: violations were in overlapped netty classes. --- .../java/com/github/dockerjava/netty/exec/CommitCmdExec.java | 4 ++-- .../com/github/dockerjava/netty/exec/CreateImageCmdExec.java | 2 +- src/test/resources/checkstyle/checkstyle-config.xml | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/github/dockerjava/netty/exec/CommitCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/CommitCmdExec.java index b42bbdb3b..eaba91fdb 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/CommitCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/CommitCmdExec.java @@ -27,8 +27,8 @@ protected String execute(CommitCmd command) { webTarget = booleanQueryParam(webTarget, "pause", command.hasPauseEnabled()); LOGGER.trace("POST: {}", webTarget); - ObjectNode objectNode = webTarget.request().accept(MediaType.APPLICATION_JSON). - post(command, new TypeReference() {}); + ObjectNode objectNode = webTarget.request().accept(MediaType.APPLICATION_JSON) + .post(command, new TypeReference() { }); return objectNode.get("Id").asText(); } diff --git a/src/main/java/com/github/dockerjava/netty/exec/CreateImageCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/CreateImageCmdExec.java index 3d3ddec27..0e182e8bc 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/CreateImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/CreateImageCmdExec.java @@ -26,6 +26,6 @@ protected CreateImageResponse execute(CreateImageCmd command) { LOGGER.trace("POST: {}", webResource); return webResource.request().accept(MediaType.APPLICATION_OCTET_STREAM) - .post(new TypeReference() {}, command.getImageStream()); + .post(new TypeReference() { }, command.getImageStream()); } } diff --git a/src/test/resources/checkstyle/checkstyle-config.xml b/src/test/resources/checkstyle/checkstyle-config.xml index 02f55585f..ea30a270d 100644 --- a/src/test/resources/checkstyle/checkstyle-config.xml +++ b/src/test/resources/checkstyle/checkstyle-config.xml @@ -98,8 +98,7 @@ - - + @@ -111,7 +110,7 @@ - + From 60a3518631cdc0a5606c0a96fcbc579fc27af526 Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Sat, 6 Feb 2016 18:30:53 +0100 Subject: [PATCH 014/878] Sync sources with eclipse code formatter and checkstyle --- etc/docker-java-formatter.xml | 587 ++++++++++++++++++ .../github/dockerjava/api/DockerClient.java | 9 +- .../dockerjava/api/async/ResultCallback.java | 4 +- .../api/command/AttachContainerCmd.java | 3 +- .../dockerjava/api/command/AuthCmd.java | 5 +- .../command/CopyArchiveToContainerCmd.java | 14 +- .../api/command/CreateContainerCmd.java | 32 +- .../api/command/CreateNetworkCmd.java | 2 +- .../api/command/CreateVolumeCmd.java | 4 +- .../api/command/InspectContainerResponse.java | 2 - .../api/command/ListContainersCmd.java | 3 +- .../api/command/LogContainerCmd.java | 7 +- .../dockerjava/api/command/StatsCmd.java | 4 +- .../dockerjava/api/model/AuthConfig.java | 4 +- .../com/github/dockerjava/api/model/Bind.java | 27 +- .../dockerjava/api/model/Capability.java | 62 +- .../github/dockerjava/api/model/Event.java | 6 +- .../dockerjava/api/model/ExposedPort.java | 22 +- .../github/dockerjava/api/model/Frame.java | 4 +- .../dockerjava/api/model/Identifier.java | 4 +- .../api/model/InternetProtocol.java | 4 +- .../com/github/dockerjava/api/model/Link.java | 27 +- .../dockerjava/api/model/LogConfig.java | 6 +- .../github/dockerjava/api/model/Network.java | 2 +- .../dockerjava/api/model/PortBinding.java | 34 +- .../github/dockerjava/api/model/Ports.java | 69 +- .../dockerjava/api/model/RestartPolicy.java | 7 +- .../github/dockerjava/api/model/Ulimit.java | 4 +- .../github/dockerjava/api/model/VolumeRW.java | 4 +- .../dockerjava/api/model/VolumesFrom.java | 24 +- .../dockerjava/core/AuthConfigFile.java | 5 +- .../dockerjava/core/DockerClientConfig.java | 17 +- .../dockerjava/core/GoLangFileMatch.java | 136 ++-- .../dockerjava/core/KeystoreSSLConfig.java | 26 +- .../github/dockerjava/core/NameParser.java | 5 +- .../dockerjava/core/RemoteApiVersion.java | 15 +- .../core/async/ResultCallbackTemplate.java | 9 +- .../core/command/ConnectToNetworkCmdImpl.java | 6 +- .../core/command/CreateNetworkCmdImpl.java | 3 +- .../command/DisconnectFromNetworkCmdImpl.java | 8 +- .../core/command/ExecStartCmdImpl.java | 1 - .../core/command/ExecStartResultCallback.java | 30 +- .../dockerjava/core/command/FrameReader.java | 17 +- .../core/command/InpectNetworkCmdImpl.java | 6 +- .../core/command/LogContainerCmdImpl.java | 4 +- .../core/dockerfile/Dockerfile.java | 4 +- .../core/util/CompressArchiveUtil.java | 4 +- .../dockerjava/core/util/FiltersBuilder.java | 5 +- .../dockerjava/jaxrs/ApacheUnixSocket.java | 10 +- .../jaxrs/ConnectToNetworkCmdExec.java | 2 +- .../jaxrs/DisconnectFromNetworkCmdExec.java | 2 +- .../jaxrs/InspectNetworkCmdExec.java | 5 +- .../jaxrs/RemoveNetworkCmdExec.java | 2 +- .../jaxrs/connector/ApacheConnector.java | 32 +- .../connector/ApacheConnectorProvider.java | 47 +- .../jaxrs/filter/FollowRedirectsFilter.java | 6 +- .../jaxrs/filter/LoggingFilter.java | 13 +- .../filter/ResponseStatusExceptionFilter.java | 40 +- .../util/WrappedResponseInputStream.java | 5 +- .../netty/DockerCmdExecFactoryImpl.java | 4 +- .../dockerjava/netty/InvocationBuilder.java | 4 +- .../github/dockerjava/netty/MediaType.java | 4 +- .../github/dockerjava/netty/WebTarget.java | 4 +- .../netty/exec/AbstrSyncDockerCmdExec.java | 1 - .../dockerjava/netty/exec/CommitCmdExec.java | 3 +- .../netty/exec/ConnectToNetworkCmdExec.java | 3 +- .../netty/exec/CreateImageCmdExec.java | 3 +- .../exec/DisconnectFromNetworkCmdExec.java | 3 +- .../dockerjava/netty/exec/InfoCmdExec.java | 3 +- .../netty/exec/LogContainerCmdExec.java | 1 - .../netty/exec/RestartContainerCmdExec.java | 1 - .../netty/exec/StopContainerCmdExec.java | 2 - .../handler/FramedResponseStreamHandler.java | 16 +- .../netty/handler/HttpResponseHandler.java | 78 +-- .../dockerjava/api/model/AuthConfigTest.java | 2 +- .../dockerjava/api/model/IdentifierTest.java | 2 +- .../api/model/Ports_addBindingsTest.java | 11 +- .../dockerjava/api/model/RepositoryTest.java | 2 +- .../model/RestartPolicy_SerializingTest.java | 4 +- .../api/model/RestartPolicy_toStringTest.java | 2 +- .../dockerjava/api/model/VolumeBindsTest.java | 2 +- .../client/AbstractDockerClientTest.java | 2 +- .../dockerjava/client/DockerClientTest.java | 4 +- .../dockerjava/core/DockerClientImplTest.java | 2 +- .../dockerjava/core/GoLangFileMatchTest.java | 108 ++-- .../core/TestDockerCmdExecFactory.java | 4 +- .../core/command/BuildImageCmdImplTest.java | 7 +- .../command/CreateContainerCmdImplTest.java | 21 +- .../core/command/FrameReaderTest.java | 2 +- .../command/StartContainerCmdImplTest.java | 19 +- .../DockerfileStatementAddTest.java | 18 +- .../core/dockerfile/DockerfileTest.java | 2 +- .../core/util/FiltersBuilderTest.java | 3 +- .../netty/exec/BuildImageCmdExecTest.java | 7 +- .../exec/CreateContainerCmdExecTest.java | 21 +- .../netty/exec/StartContainerCmdExecTest.java | 19 +- 96 files changed, 1192 insertions(+), 653 deletions(-) create mode 100644 etc/docker-java-formatter.xml diff --git a/etc/docker-java-formatter.xml b/etc/docker-java-formatter.xml new file mode 100644 index 000000000..211b0a223 --- /dev/null +++ b/etc/docker-java-formatter.xml @@ -0,0 +1,587 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/github/dockerjava/api/DockerClient.java b/src/main/java/com/github/dockerjava/api/DockerClient.java index 5db2967ff..aaa3c5fcf 100644 --- a/src/main/java/com/github/dockerjava/api/DockerClient.java +++ b/src/main/java/com/github/dockerjava/api/DockerClient.java @@ -107,12 +107,11 @@ public interface DockerClient extends Closeable { public CreateContainerCmd createContainerCmd(@Nonnull String image); /** - * Creates a new {@link StartContainerCmd} for the container with the given ID. The command can then be further - * customized by using builder methods on it like {@link StartContainerCmd#withDns(String...)}. + * Creates a new {@link StartContainerCmd} for the container with the given ID. The command can then be further customized by using + * builder methods on it like {@link StartContainerCmd#withDns(String...)}. *

- * If you customize the command, any existing configuration of the target container will get reset to its default - * before applying the new configuration. To preserve the existing configuration, use an unconfigured - * {@link StartContainerCmd}. + * If you customize the command, any existing configuration of the target container will get reset to its default before applying the + * new configuration. To preserve the existing configuration, use an unconfigured {@link StartContainerCmd}. *

* This command corresponds to the /containers/{id}/start endpoint of the Docker Remote API. */ diff --git a/src/main/java/com/github/dockerjava/api/async/ResultCallback.java b/src/main/java/com/github/dockerjava/api/async/ResultCallback.java index 0bb052a0b..5b9fdb81c 100644 --- a/src/main/java/com/github/dockerjava/api/async/ResultCallback.java +++ b/src/main/java/com/github/dockerjava/api/async/ResultCallback.java @@ -7,8 +7,8 @@ */ public interface ResultCallback extends Closeable { /** - * Called when the async processing starts respectively when the response arrives from the server. The passed - * {@link Closeable} can be used to close/interrupt the processing. + * Called when the async processing starts respectively when the response arrives from the server. The passed {@link Closeable} can be + * used to close/interrupt the processing. */ void onStart(Closeable closeable); diff --git a/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java index 84f063d7e..ddeb21c2d 100644 --- a/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java @@ -50,8 +50,7 @@ public interface AttachContainerCmd extends AsyncDockerCmd { public AuthCmd withAuthConfig(@Nonnull AuthConfig authConfig); /** - * @return The status. Based on it's value you may mean you need to authorise your account, e.g.: - * "Account created. Please see the documentation of the registry http://localhost:5000/v1/ - * for instructions how to activate it." + * @return The status. Based on it's value you may mean you need to authorise your account, e.g.: "Account created. Please see the + * documentation of the registry http://localhost:5000/v1/ for instructions how to activate it." * @throws UnauthorizedException * If you're not authorised (e.g. bad password). */ diff --git a/src/main/java/com/github/dockerjava/api/command/CopyArchiveToContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/CopyArchiveToContainerCmd.java index bbfae4597..a4dfb5c03 100644 --- a/src/main/java/com/github/dockerjava/api/command/CopyArchiveToContainerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/CopyArchiveToContainerCmd.java @@ -33,8 +33,7 @@ public interface CopyArchiveToContainerCmd extends SyncDockerCmd { CopyArchiveToContainerCmd withHostResource(String resource); /** - * Set the tar input stream that will be uploaded to the container. withHostResource or withTarInputStream can be - * defined but not both. + * Set the tar input stream that will be uploaded to the container. withHostResource or withTarInputStream can be defined but not both. * * @param tarInputStream * the stream to upload to the container @@ -42,8 +41,8 @@ public interface CopyArchiveToContainerCmd extends SyncDockerCmd { CopyArchiveToContainerCmd withTarInputStream(InputStream tarInputStream); /** - * If set to true then it will be an error if unpacking the given content would cause an existing directory to be - * replaced with a non-directory and vice versa + * If set to true then it will be an error if unpacking the given content would cause an existing directory to be replaced with a + * non-directory and vice versa * * @param noOverwriteDirNonDir * flag to know if non directory can be overwritten @@ -51,10 +50,9 @@ public interface CopyArchiveToContainerCmd extends SyncDockerCmd { CopyArchiveToContainerCmd withNoOverwriteDirNonDir(boolean noOverwriteDirNonDir); /** - * If this flag is set to true, all children of the local directory will be copied to the remote without the root - * directory. For ex: if I have root/titi and root/tata and the remote path is /var/data. dirChildrenOnly = true - * will create /var/data/titi and /var/data/tata dirChildrenOnly = false will create /var/data/root/titi and - * /var/data/root/tata + * If this flag is set to true, all children of the local directory will be copied to the remote without the root directory. For ex: if + * I have root/titi and root/tata and the remote path is /var/data. dirChildrenOnly = true will create /var/data/titi and /var/data/tata + * dirChildrenOnly = false will create /var/data/root/titi and /var/data/root/tata * * @param dirChildrenOnly * if root directory is ignored diff --git a/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java index f1c7fdd9c..6b004c826 100644 --- a/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java @@ -195,30 +195,26 @@ public interface CreateContainerCmd extends SyncDockerCmdkernel capability to the - * container. For example: adding {@link Capability#MKNOD} allows the container to create special files using the - * 'mknod' command. + * Add linux kernel capability to the container. For example: + * adding {@link Capability#MKNOD} allows the container to create special files using the 'mknod' command. */ public CreateContainerCmd withCapAdd(Capability... capAdd); /** - * Add linux kernel capability to the - * container. For example: adding {@link Capability#MKNOD} allows the container to create special files using the - * 'mknod' command. + * Add linux kernel capability to the container. For example: + * adding {@link Capability#MKNOD} allows the container to create special files using the 'mknod' command. */ public CreateContainerCmd withCapAdd(List capAdd); /** - * Drop linux kernel capability from the - * container. For example: dropping {@link Capability#CHOWN} prevents the container from changing the owner of any - * files. + * Drop linux kernel capability from the container. For example: + * dropping {@link Capability#CHOWN} prevents the container from changing the owner of any files. */ public CreateContainerCmd withCapDrop(Capability... capDrop); /** - * Drop linux kernel capability from the - * container. For example: dropping {@link Capability#CHOWN} prevents the container from changing the owner of any - * files. + * Drop linux kernel capability from the container. For example: + * dropping {@link Capability#CHOWN} prevents the container from changing the owner of any files. */ public CreateContainerCmd withCapDrop(List capDrop); @@ -334,8 +330,8 @@ public interface CreateContainerCmd extends SyncDockerCmd'bridge': creates a new network stack for the container on the docker bridge *

  • 'none': no networking for this container
  • *
  • 'container:': reuses another container network stack
  • - *
  • 'host': use the host network stack inside the container. Note: the host mode gives the container full access - * to local system services such as D-bus and is therefore considered insecure.
  • + *
  • 'host': use the host network stack inside the container. Note: the host mode gives the container full access to local system + * services such as D-bus and is therefore considered insecure.
  • * */ public CreateContainerCmd withNetworkMode(String networkMode); @@ -346,14 +342,14 @@ public interface CreateContainerCmd extends SyncDockerCmd--publish (-p) option of - * the docker run CLI command. + * Add one or more {@link PortBinding}s. This corresponds to the --publish (-p) option of the + * docker run CLI command. */ public CreateContainerCmd withPortBindings(PortBinding... portBindings); /** - * Add one or more {@link PortBinding}s. This corresponds to the --publish (-p) option of - * the docker run CLI command. + * Add one or more {@link PortBinding}s. This corresponds to the --publish (-p) option of the + * docker run CLI command. */ public CreateContainerCmd withPortBindings(List portBindings); diff --git a/src/main/java/com/github/dockerjava/api/command/CreateNetworkCmd.java b/src/main/java/com/github/dockerjava/api/command/CreateNetworkCmd.java index 2e3cd92a0..82b4ac18c 100644 --- a/src/main/java/com/github/dockerjava/api/command/CreateNetworkCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/CreateNetworkCmd.java @@ -34,7 +34,7 @@ public interface CreateNetworkCmd extends SyncDockerCmd { /** Name of the network driver to use. Defaults to bridge. */ public CreateNetworkCmd withDriver(String driver); - /** Driver specific options */ + /** Driver specific options */ public CreateNetworkCmd withOptions(Map options); public static interface Exec extends DockerCmdSyncExec { diff --git a/src/main/java/com/github/dockerjava/api/command/CreateVolumeCmd.java b/src/main/java/com/github/dockerjava/api/command/CreateVolumeCmd.java index 0642cf902..801fb6122 100644 --- a/src/main/java/com/github/dockerjava/api/command/CreateVolumeCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/CreateVolumeCmd.java @@ -29,12 +29,10 @@ public interface CreateVolumeCmd extends SyncDockerCmd { /** * @param driverOpts - * - A mapping of driver options and values. These options are passed directly to the driver and are - * driver specific. + * - A mapping of driver options and values. These options are passed directly to the driver and are driver specific. */ public CreateVolumeCmd withDriverOpts(Map driverOpts); public static interface Exec extends DockerCmdSyncExec { } } - diff --git a/src/main/java/com/github/dockerjava/api/command/InspectContainerResponse.java b/src/main/java/com/github/dockerjava/api/command/InspectContainerResponse.java index 85f2812f0..3a49a4dd4 100644 --- a/src/main/java/com/github/dockerjava/api/command/InspectContainerResponse.java +++ b/src/main/java/com/github/dockerjava/api/command/InspectContainerResponse.java @@ -202,8 +202,6 @@ public String toString() { return ToStringBuilder.reflectionToString(this); } - - @JsonIgnoreProperties(ignoreUnknown = true) public class ContainerState { diff --git a/src/main/java/com/github/dockerjava/api/command/ListContainersCmd.java b/src/main/java/com/github/dockerjava/api/command/ListContainersCmd.java index 842f242cc..4ae506a42 100644 --- a/src/main/java/com/github/dockerjava/api/command/ListContainersCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/ListContainersCmd.java @@ -57,8 +57,7 @@ public interface ListContainersCmd extends SyncDockerCmd> { /** * @param labels - * - Show only containers with the passed labels. Labels is a {@link Map} that contains label keys and - * values + * - Show only containers with the passed labels. Labels is a {@link Map} that contains label keys and values */ public ListContainersCmd withLabelFilter(Map labels); diff --git a/src/main/java/com/github/dockerjava/api/command/LogContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/LogContainerCmd.java index f4b5076c5..bb3081ce4 100644 --- a/src/main/java/com/github/dockerjava/api/command/LogContainerCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/LogContainerCmd.java @@ -23,8 +23,8 @@ * @param tail * - `all` or ``, Output specified number of lines at the end of logs * @param since - * - UNIX timestamp (integer) to filter logs. Specifying a timestamp will only output log-entries since that - * timestamp. Default: 0 (unfiltered) + * - UNIX timestamp (integer) to filter logs. Specifying a timestamp will only output log-entries since that timestamp. Default: + * 0 (unfiltered) */ public interface LogContainerCmd extends AsyncDockerCmd { @@ -53,8 +53,7 @@ public interface LogContainerCmd extends AsyncDockerCmd /** * Following the stream means the resulting {@link InputStream} returned by {@link #exec()} reads infinitely. So a - * {@link InputStream#read()} MAY BLOCK FOREVER as long as no data is streamed from the docker host to - * {@link DockerClient}! + * {@link InputStream#read()} MAY BLOCK FOREVER as long as no data is streamed from the docker host to {@link DockerClient}! */ public LogContainerCmd withFollowStream(Boolean followStream); diff --git a/src/main/java/com/github/dockerjava/api/command/StatsCmd.java b/src/main/java/com/github/dockerjava/api/command/StatsCmd.java index 653cd3bb2..d2d7fe385 100644 --- a/src/main/java/com/github/dockerjava/api/command/StatsCmd.java +++ b/src/main/java/com/github/dockerjava/api/command/StatsCmd.java @@ -6,8 +6,8 @@ import com.github.dockerjava.api.model.Statistics; /** - * Get container stats. The result of {@link Statistics} is handled asynchronously because the docker remote API will - * block when a container is stopped until the container is up again. + * Get container stats. The result of {@link Statistics} is handled asynchronously because the docker remote API will block when a container + * is stopped until the container is up again. */ public interface StatsCmd extends AsyncDockerCmd { diff --git a/src/main/java/com/github/dockerjava/api/model/AuthConfig.java b/src/main/java/com/github/dockerjava/api/model/AuthConfig.java index 0bd6cac8c..3dc3ef348 100644 --- a/src/main/java/com/github/dockerjava/api/model/AuthConfig.java +++ b/src/main/java/com/github/dockerjava/api/model/AuthConfig.java @@ -79,7 +79,7 @@ public String toString() { return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE); } - //CHECKSTYLE:OFF + // CHECKSTYLE:OFF @Override public int hashCode() { final int prime = 31; @@ -128,5 +128,5 @@ public boolean equals(Object obj) { return false; return true; } - //CHECKSTYLE:ON + // CHECKSTYLE:ON } diff --git a/src/main/java/com/github/dockerjava/api/model/Bind.java b/src/main/java/com/github/dockerjava/api/model/Bind.java index aa4863923..bc7c8e4bb 100644 --- a/src/main/java/com/github/dockerjava/api/model/Bind.java +++ b/src/main/java/com/github/dockerjava/api/model/Bind.java @@ -4,8 +4,8 @@ import org.apache.commons.lang.builder.HashCodeBuilder; /** - * Represents a host path being bind mounted as a {@link Volume} in a Docker container. The Bind can be in read only or - * read write access mode. + * Represents a host path being bind mounted as a {@link Volume} in a Docker container. The Bind can be in read only or read write access + * mode. */ public class Bind { @@ -50,16 +50,16 @@ public static Bind parse(String serialized) { try { String[] parts = serialized.split(":"); switch (parts.length) { - case 2: { - return new Bind(parts[0], new Volume(parts[1])); - } - case 3: { - AccessMode accessMode = AccessMode.valueOf(parts[2].toLowerCase()); - return new Bind(parts[0], new Volume(parts[1]), accessMode); - } - default: { - throw new IllegalArgumentException(); - } + case 2: { + return new Bind(parts[0], new Volume(parts[1])); + } + case 3: { + AccessMode accessMode = AccessMode.valueOf(parts[2].toLowerCase()); + return new Bind(parts[0], new Volume(parts[1]), accessMode); + } + default: { + throw new IllegalArgumentException(); + } } } catch (Exception e) { throw new IllegalArgumentException("Error parsing Bind '" + serialized + "'"); @@ -84,8 +84,7 @@ public int hashCode() { /** * Returns a string representation of this {@link Bind} suitable for inclusion in a JSON message. The format is - * <host path>:<container path>:<access mode>, like the argument in - * {@link #parse(String)}. + * <host path>:<container path>:<access mode>, like the argument in {@link #parse(String)}. * * @return a string representation of this {@link Bind} */ diff --git a/src/main/java/com/github/dockerjava/api/model/Capability.java b/src/main/java/com/github/dockerjava/api/model/Capability.java index 4757937e3..6237a65ae 100644 --- a/src/main/java/com/github/dockerjava/api/model/Capability.java +++ b/src/main/java/com/github/dockerjava/api/model/Capability.java @@ -1,11 +1,9 @@ package com.github.dockerjava.api.model; /** - * The Linux capabilities supported by Docker. The list of capabilities is defined in Docker's types.go, {@link #ALL} - * was added manually. + * The Linux capabilities supported by Docker. The list of capabilities is defined in Docker's types.go, {@link #ALL} was added manually. * - * @see http://man7.org/linux/man-pages/man7/capabilities.7.html + * @see http://man7.org/linux/man-pages/man7/capabilities.7.html */ public enum Capability { /** @@ -33,8 +31,7 @@ public enum Capability { */ CHOWN, /** - * Bypass file read, write, and execute permission checks. (DAC is an abbreviation of - * "discretionary access control".) + * Bypass file read, write, and execute permission checks. (DAC is an abbreviation of "discretionary access control".) */ DAC_OVERRIDE, /** @@ -43,9 +40,8 @@ public enum Capability { DAC_READ_SEARCH, /** *
      - *
    • Bypass permission checks on operations that normally require the file system UID of the process to match the - * UID of the file (e.g., chmod(2), utime(2)), excluding those operations covered by the {@link #DAC_OVERRIDE} and - * {@link #DAC_READ_SEARCH}. + *
    • Bypass permission checks on operations that normally require the file system UID of the process to match the UID of the file + * (e.g., chmod(2), utime(2)), excluding those operations covered by the {@link #DAC_OVERRIDE} and {@link #DAC_READ_SEARCH}. *
    • Set extended file attributes (see chattr(1)) on arbitrary files. *
    • Set Access Control Lists (ACLs) on arbitrary files. *
    • Ignore directory sticky bit on file deletion. @@ -56,8 +52,8 @@ public enum Capability { /** *
        *
      • Don't clear set-user-ID and set-group-ID permission bits when a file is modified. - *
      • Set the set-group-ID bit for a file whose GID does not match the file system or any of the supplementary GIDs - * of the calling process. + *
      • Set the set-group-ID bit for a file whose GID does not match the file system or any of the supplementary GIDs of the calling + * process. *
      */ FSETID, @@ -70,8 +66,7 @@ public enum Capability { */ IPC_OWNER, /** - * Bypass permission checks for sending signals (see kill(2)). This includes use of the ioctl(2) KDSIGACCEPT - * operation. + * Bypass permission checks for sending signals (see kill(2)). This includes use of the ioctl(2) KDSIGACCEPT operation. */ KILL, /** @@ -105,8 +100,8 @@ public enum Capability { *
    • Clear driver statistics. *
    • Set promiscuous mode. *
    • Enabling multicasting. - *
    • Use setsockopt(2) to set the following socket options: SO_DEBUG, SO_MARK, SO_PRIORITY (for a priority outside - * the range 0 to 6), SO_RCVBUFFORCE, and SO_SNDBUFFORCE. + *
    • Use setsockopt(2) to set the following socket options: SO_DEBUG, SO_MARK, SO_PRIORITY (for a priority outside the range 0 to 6), + * SO_RCVBUFFORCE, and SO_SNDBUFFORCE. *
    */ NET_ADMIN, @@ -139,9 +134,9 @@ public enum Capability { /** * If file capabilities are not supported: *
      - *
    • grant or remove any capability in the caller's permitted capability set to or from any other process. (This - * property of CAP_SETPCAP is not available when the kernel is configured to support file capabilities, since - * CAP_SETPCAP has entirely different semantics for such kernels.) + *
    • grant or remove any capability in the caller's permitted capability set to or from any other process. (This property of + * CAP_SETPCAP is not available when the kernel is configured to support file capabilities, since CAP_SETPCAP has entirely different + * semantics for such kernels.) *
    *

    * If file capabilities are supported: @@ -161,19 +156,17 @@ public enum Capability { SETUID, /** *

      - *
    • Perform a range of system administration operations including: quotactl(2), mount(2), umount(2), swapon(2), - * swapoff(2), sethostname(2), and setdomainname(2). - *
    • Perform privileged syslog(2) operations (since Linux 2.6.37, CAP_SYSLOG should be used to permit such - * operations). + *
    • Perform a range of system administration operations including: quotactl(2), mount(2), umount(2), swapon(2), swapoff(2), + * sethostname(2), and setdomainname(2). + *
    • Perform privileged syslog(2) operations (since Linux 2.6.37, CAP_SYSLOG should be used to permit such operations). *
    • Perform VM86_REQUEST_IRQ vm86(2) command. *
    • Perform IPC_SET and IPC_RMID operations on arbitrary System V IPC objects. *
    • Perform operations on trusted and security Extended Attributes (see attr(5)). *
    • Use lookup_dcookie(2) - *
    • Use ioprio_set(2) to assign IOPRIO_CLASS_RT and (before Linux 2.6.25) IOPRIO_CLASS_IDLE I/O scheduling - * classes. + *
    • Use ioprio_set(2) to assign IOPRIO_CLASS_RT and (before Linux 2.6.25) IOPRIO_CLASS_IDLE I/O scheduling classes. *
    • Forge UID when passing socket credentials. - *
    • Exceed /proc/sys/fs/file-max, the system-wide limit on the number of open files, in system calls that open - * files (e.g., accept(2), execve(2), open(2), pipe(2)). + *
    • Exceed /proc/sys/fs/file-max, the system-wide limit on the number of open files, in system calls that open files (e.g., + * accept(2), execve(2), open(2), pipe(2)). *
    • Employ CLONE_* flags that create new namespaces with clone(2) and unshare(2). *
    • Call perf_event_open(2). *
    • Access privileged perf event information. @@ -181,8 +174,7 @@ public enum Capability { *
    • Call fanotify_init(2). *
    • Perform KEYCTL_CHOWN and KEYCTL_SETPERM keyctl(2) operations. *
    • Perform madvise(2) MADV_HWPOISON operation. - *
    • Employ the TIOCSTI ioctl(2) to insert characters into the input queue of a terminal other than the caller's - * controlling terminal. + *
    • Employ the TIOCSTI ioctl(2) to insert characters into the input queue of a terminal other than the caller's controlling terminal. *
    • Employ the obsolete nfsservctl(2) system call. *
    • Employ the obsolete bdflush(2) system call. *
    • Perform various privileged block-device ioctl(2) operations. @@ -202,8 +194,8 @@ public enum Capability { /** *
        *
      • Perform privileged syslog(2) operations. See syslog(2) for information on which operations require privilege. - *
      • View kernel addresses exposed via /proc and other interfaces when /proc/sys/kernel/kptr_restrict has the - * value 1. (See the discussion of the kptr_restrict in proc(5).) + *
      • View kernel addresses exposed via /proc and other interfaces when /proc/sys/kernel/kptr_restrict has the value 1. (See the + * discussion of the kptr_restrict in proc(5).) *
      */ SYSLOG, @@ -217,8 +209,8 @@ public enum Capability { /** *
        *
      • Raise process nice value (nice(2), setpriority(2)) and change the nice value for arbitrary processes. - *
      • Set real-time scheduling policies for calling process, and set scheduling policies and priorities for - * arbitrary processes (sched_setscheduler(2), sched_setparam(2)). + *
      • Set real-time scheduling policies for calling process, and set scheduling policies and priorities for arbitrary processes + * (sched_setscheduler(2), sched_setparam(2)). *
      • Set CPU affinity for arbitrary processes (sched_setaffinity(2)). *
      • Set I/O scheduling class and priority for arbitrary processes (ioprio_set(2)). *
      • Apply migrate_pages(2) to arbitrary processes and allow processes to be migrated to arbitrary nodes. @@ -265,10 +257,8 @@ public enum Capability { *
      • Override maximum number of consoles on console allocation. *
      • Override maximum number of keymaps. *
      • Allow more than 64hz interrupts from the real-time clock. - *
      • Raise msg_qbytes limit for a System V message queue above the limit in /proc/sys/kernel/msgmnb (see msgop(2) - * and msgctl(2)). - *
      • Override the /proc/sys/fs/pipe-size-max limit when setting the capacity of a pipe using the F_SETPIPE_SZ - * fcntl(2) command. + *
      • Raise msg_qbytes limit for a System V message queue above the limit in /proc/sys/kernel/msgmnb (see msgop(2) and msgctl(2)). + *
      • Override the /proc/sys/fs/pipe-size-max limit when setting the capacity of a pipe using the F_SETPIPE_SZ fcntl(2) command. *
      • Use F_SETPIPE_SZ to increase the capacity of a pipe above the limit specified by /proc/sys/fs/pipe-max-size. *
      • Override /proc/sys/fs/mqueue/queues_max limit when creating POSIX message queues (see mq_overview(7)). *
      • Employ prctl(2) PR_SET_MM operation. diff --git a/src/main/java/com/github/dockerjava/api/model/Event.java b/src/main/java/com/github/dockerjava/api/model/Event.java index 1ec0f433d..202f5a350 100644 --- a/src/main/java/com/github/dockerjava/api/model/Event.java +++ b/src/main/java/com/github/dockerjava/api/model/Event.java @@ -36,8 +36,7 @@ public Event() { * Container ID * @param status * Status string. List of statuses is available in Docker - * API v.1.16 + * href="https://docs.docker.com/reference/api/docker_remote_api_v1.16/#monitor-dockers-events">Docker API v.1.16 * @param from * Image, from which the container has been created * @param time @@ -53,8 +52,7 @@ public Event(String status, String id, String from, Long time) { /** * Status of docker image or container. List of statuses is available in Docker API - * v.1.16 + * href="https://docs.docker.com/reference/api/docker_remote_api_v1.16/#monitor-dockers-events">Docker API v.1.16 * * @return Status string */ 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 43ee92291..25829b8aa 100644 --- a/src/main/java/com/github/dockerjava/api/model/ExposedPort.java +++ b/src/main/java/com/github/dockerjava/api/model/ExposedPort.java @@ -24,9 +24,9 @@ import com.github.dockerjava.api.model.Ports.Binding; /** - * Represents a container port that Docker exposes to external clients. The port is defined by its {@link #getPort() - * port number} and an {@link InternetProtocol}. It can be published by Docker by - * {@link Ports#bind(ExposedPort, Binding) binding} it to a host port, represented by a {@link Binding}. + * Represents a container port that Docker exposes to external clients. The port is defined by its {@link #getPort() port number} and an + * {@link InternetProtocol}. It can be published by Docker by {@link Ports#bind(ExposedPort, Binding) binding} it to a host port, + * represented by a {@link Binding}. */ @JsonDeserialize(using = ExposedPort.Deserializer.class) @JsonSerialize(using = ExposedPort.Serializer.class) @@ -123,12 +123,12 @@ public static ExposedPort parse(String serialized) throws IllegalArgumentExcepti try { String[] parts = serialized.split("/"); switch (parts.length) { - case 1: - return new ExposedPort(Integer.valueOf(parts[0])); - case 2: - return new ExposedPort(Integer.valueOf(parts[0]), InternetProtocol.parse(parts[1])); - default: - throw new IllegalArgumentException(); + case 1: + return new ExposedPort(Integer.valueOf(parts[0])); + case 2: + return new ExposedPort(Integer.valueOf(parts[0]), InternetProtocol.parse(parts[1])); + default: + throw new IllegalArgumentException(); } } catch (Exception e) { throw new IllegalArgumentException("Error parsing ExposedPort '" + serialized + "'"); @@ -136,8 +136,8 @@ public static ExposedPort parse(String serialized) throws IllegalArgumentExcepti } /** - * Returns a string representation of this {@link ExposedPort} suitable for inclusion in a JSON message. The format - * is port/protocol, like the argument in {@link #parse(String)}. + * Returns a string representation of this {@link ExposedPort} suitable for inclusion in a JSON message. The format is + * port/protocol, like the argument in {@link #parse(String)}. * * @return a string representation of this {@link ExposedPort} */ diff --git a/src/main/java/com/github/dockerjava/api/model/Frame.java b/src/main/java/com/github/dockerjava/api/model/Frame.java index e398ec255..0ad16e8c6 100644 --- a/src/main/java/com/github/dockerjava/api/model/Frame.java +++ b/src/main/java/com/github/dockerjava/api/model/Frame.java @@ -28,7 +28,7 @@ public String toString() { return String.format("%s: %s", streamType, new String(payload).trim()); } - //CHECKSTYLE:OFF + // CHECKSTYLE:OFF @Override public boolean equals(Object o) { if (this == o) @@ -48,5 +48,5 @@ public int hashCode() { result = 31 * result + Arrays.hashCode(payload); return result; } - //CHECKSTYLE:ON + // CHECKSTYLE:ON } diff --git a/src/main/java/com/github/dockerjava/api/model/Identifier.java b/src/main/java/com/github/dockerjava/api/model/Identifier.java index ed5100e25..1051d857f 100644 --- a/src/main/java/com/github/dockerjava/api/model/Identifier.java +++ b/src/main/java/com/github/dockerjava/api/model/Identifier.java @@ -22,8 +22,8 @@ public Identifier(Repository repository, String tag) { } /** - * Return an identifier that correctly splits up the repository and tag. There can be > 1 ":" fred/jim --> - * fred/jim, [] fred/jim:123 --> fred/jim, 123 fred:123/jim:123 --> fred:123/jim, 123 + * Return an identifier that correctly splits up the repository and tag. There can be > 1 ":" fred/jim --> fred/jim, [] + * fred/jim:123 --> fred/jim, 123 fred:123/jim:123 --> fred:123/jim, 123 * * * @param identifier diff --git a/src/main/java/com/github/dockerjava/api/model/InternetProtocol.java b/src/main/java/com/github/dockerjava/api/model/InternetProtocol.java index e3ef2b98c..2bb4db285 100644 --- a/src/main/java/com/github/dockerjava/api/model/InternetProtocol.java +++ b/src/main/java/com/github/dockerjava/api/model/InternetProtocol.java @@ -23,8 +23,8 @@ public enum InternetProtocol { public static final InternetProtocol DEFAULT = TCP; /** - * Returns a string representation of this {@link InternetProtocol} suitable for inclusion in a JSON message. The - * output is the lowercased name of the Protocol, e.g. tcp. + * Returns a string representation of this {@link InternetProtocol} suitable for inclusion in a JSON message. The output is the + * lowercased name of the Protocol, e.g. tcp. * * @return a string representation of this {@link InternetProtocol} */ diff --git a/src/main/java/com/github/dockerjava/api/model/Link.java b/src/main/java/com/github/dockerjava/api/model/Link.java index f647438a9..89647306c 100644 --- a/src/main/java/com/github/dockerjava/api/model/Link.java +++ b/src/main/java/com/github/dockerjava/api/model/Link.java @@ -4,10 +4,9 @@ import org.apache.commons.lang.builder.HashCodeBuilder; /** - * Represents a network link between two Docker containers. The container with the name {@link #getName()} is made - * available in the target container with the aliased name {@link #getAlias()}. This involves creating an entry in - * /etc/hosts and some environment variables in the target container as well as creating a network bridge - * between both containers. + * Represents a network link between two Docker containers. The container with the name {@link #getName()} is made available in the target + * container with the aliased name {@link #getAlias()}. This involves creating an entry in /etc/hosts and some environment + * variables in the target container as well as creating a network bridge between both containers. */ public class Link { @@ -55,14 +54,14 @@ public static Link parse(final String serialized) throws IllegalArgumentExceptio try { final String[] parts = serialized.split(":"); switch (parts.length) { - case 2: { - String[] nameSplit = parts[0].split("/"); - String[] aliasSplit = parts[1].split("/"); - return new Link(nameSplit[nameSplit.length - 1], aliasSplit[aliasSplit.length - 1]); - } - default: { - throw new IllegalArgumentException(); - } + case 2: { + String[] nameSplit = parts[0].split("/"); + String[] aliasSplit = parts[1].split("/"); + return new Link(nameSplit[nameSplit.length - 1], aliasSplit[aliasSplit.length - 1]); + } + default: { + throw new IllegalArgumentException(); + } } } catch (final Exception e) { throw new IllegalArgumentException("Error parsing Link '" + serialized + "'"); @@ -85,8 +84,8 @@ public int hashCode() { } /** - * Returns a string representation of this {@link Link} suitable for inclusion in a JSON message. The format is - * name:alias, like the argument in {@link #parse(String)}. + * Returns a string representation of this {@link Link} suitable for inclusion in a JSON message. The format is name:alias, + * like the argument in {@link #parse(String)}. * * @return a string representation of this {@link Link} */ diff --git a/src/main/java/com/github/dockerjava/api/model/LogConfig.java b/src/main/java/com/github/dockerjava/api/model/LogConfig.java index 669bbc554..cf9cdc1ee 100644 --- a/src/main/java/com/github/dockerjava/api/model/LogConfig.java +++ b/src/main/java/com/github/dockerjava/api/model/LogConfig.java @@ -22,9 +22,9 @@ * * json-file (default) syslog journald none * - * If a driver is specified that is NOT supported,docker will default to null. If configs are supplied that are not - * supported by the type docker will ignore them. In most cases setting the config option to null will suffice. Consult - * the docker remote API for a more detailed and up-to-date explanation of the available types and their options. + * If a driver is specified that is NOT supported,docker will default to null. If configs are supplied that are not supported by the type + * docker will ignore them. In most cases setting the config option to null will suffice. Consult the docker remote API for a more detailed + * and up-to-date explanation of the available types and their options. */ public class LogConfig { diff --git a/src/main/java/com/github/dockerjava/api/model/Network.java b/src/main/java/com/github/dockerjava/api/model/Network.java index d62d83019..546904254 100644 --- a/src/main/java/com/github/dockerjava/api/model/Network.java +++ b/src/main/java/com/github/dockerjava/api/model/Network.java @@ -149,6 +149,6 @@ public String getIpRange() { public String getGateway() { return gateway; } - } + } } } diff --git a/src/main/java/com/github/dockerjava/api/model/PortBinding.java b/src/main/java/com/github/dockerjava/api/model/PortBinding.java index 81f94ca06..e163272d7 100644 --- a/src/main/java/com/github/dockerjava/api/model/PortBinding.java +++ b/src/main/java/com/github/dockerjava/api/model/PortBinding.java @@ -7,13 +7,13 @@ import com.github.dockerjava.api.model.Ports.Binding; /** - * In a {@link PortBinding}, a network socket on the Docker host, expressed as a {@link Binding}, is bound to an - * {@link ExposedPort} of a container. A {@link PortBinding} corresponds to the --publish (-p) - * option of the docker run (and similar) CLI command for adding port bindings to a container. + * In a {@link PortBinding}, a network socket on the Docker host, expressed as a {@link Binding}, is bound to an {@link ExposedPort} of a + * container. A {@link PortBinding} corresponds to the --publish (-p) option of the docker run (and + * similar) CLI command for adding port bindings to a container. *

        - * Note: This is an abstraction used for creating new port bindings. It is not to be confused with the abstraction - * used for querying existing port bindings from a container configuration in {@link NetworkSettings#getPorts()} and - * {@link HostConfig#getPortBindings()}. In that context, a Map<ExposedPort, Binding[]> is used. + * Note: This is an abstraction used for creating new port bindings. It is not to be confused with the abstraction used for querying + * existing port bindings from a container configuration in {@link NetworkSettings#getPorts()} and {@link HostConfig#getPortBindings()}. In + * that context, a Map<ExposedPort, Binding[]> is used. */ public class PortBinding { private final Binding binding; @@ -37,17 +37,17 @@ public static PortBinding parse(String serialized) throws IllegalArgumentExcepti try { String[] parts = StringUtils.splitByWholeSeparator(serialized, ":"); switch (parts.length) { - case 3: - // 127.0.0.1:80:8080/tcp - return createFromSubstrings(parts[0] + ":" + parts[1], parts[2]); - case 2: - // 80:8080 // 127.0.0.1::8080 - return createFromSubstrings(parts[0], parts[1]); - case 1: - // 8080 - return createFromSubstrings("", parts[0]); - default: - throw new IllegalArgumentException(); + case 3: + // 127.0.0.1:80:8080/tcp + return createFromSubstrings(parts[0] + ":" + parts[1], parts[2]); + case 2: + // 80:8080 // 127.0.0.1::8080 + return createFromSubstrings(parts[0], parts[1]); + case 1: + // 8080 + return createFromSubstrings("", parts[0]); + default: + throw new IllegalArgumentException(); } } catch (Exception e) { throw new IllegalArgumentException("Error parsing PortBinding '" + serialized + "'", e); 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 6bbb05fa2..e0250bba1 100644 --- a/src/main/java/com/github/dockerjava/api/model/Ports.java +++ b/src/main/java/com/github/dockerjava/api/model/Ports.java @@ -27,13 +27,13 @@ /** * A container for port bindings, made available as a {@link Map} via its {@link #getBindings()} method. *

        - * Note: This is an abstraction used for querying existing port bindings from a container configuration. It is not to - * be confused with the {@link PortBinding} abstraction used for adding new port bindings to a container. + * Note: This is an abstraction used for querying existing port bindings from a container configuration. It is not to be confused with + * the {@link PortBinding} abstraction used for adding new port bindings to a container. * * @see HostConfig#getPortBindings() * @see NetworkSettings#getPorts() */ -@SuppressWarnings(value = "checkstyle:equalshashcode") //FIXME? +@SuppressWarnings(value = "checkstyle:equalshashcode") @JsonDeserialize(using = Ports.Deserializer.class) @JsonSerialize(using = Ports.Serializer.class) public class Ports { @@ -41,16 +41,15 @@ public class Ports { private final Map ports = new HashMap(); /** - * Creates a {@link Ports} object with no {@link PortBinding}s. Use {@link #bind(ExposedPort, Binding)} or - * {@link #add(PortBinding...)} to add {@link PortBinding}s. + * Creates a {@link Ports} object with no {@link PortBinding}s. Use {@link #bind(ExposedPort, Binding)} or {@link #add(PortBinding...)} + * to add {@link PortBinding}s. */ public Ports() { } /** - * Creates a {@link Ports} object with an initial {@link PortBinding} for the specified {@link ExposedPort} and - * {@link Binding}. Use {@link #bind(ExposedPort, Binding)} or {@link #add(PortBinding...)} to add more - * {@link PortBinding}s. + * Creates a {@link Ports} object with an initial {@link PortBinding} for the specified {@link ExposedPort} and {@link Binding}. Use + * {@link #bind(ExposedPort, Binding)} or {@link #add(PortBinding...)} to add more {@link PortBinding}s. */ public Ports(ExposedPort exposedPort, Binding host) { bind(exposedPort, host); @@ -71,7 +70,7 @@ public void bind(ExposedPort exposedPort, Binding binding) { if (binding == null) { ports.put(exposedPort, null); } else { - ports.put(exposedPort, new Binding[]{binding}); + ports.put(exposedPort, new Binding[] {binding}); } } } @@ -91,8 +90,7 @@ public String toString() { } /** - * Returns the port bindings in the format used by the Docker remote API, i.e. the {@link Binding}s grouped by - * {@link ExposedPort}. + * Returns the port bindings in the format used by the Docker remote API, i.e. the {@link Binding}s grouped by {@link ExposedPort}. * * @return the port bindings as a {@link Map} that contains one or more {@link Binding}s per {@link ExposedPort}. */ @@ -125,9 +123,9 @@ public static Binding binding(Integer hostPort) { } /** - * A {@link Binding} represents a socket on the Docker host that is used in a {@link PortBinding}. It is - * characterized by an {@link #getHostIp() IP address} and a {@link #getHostPort() port number}. Both properties may - * be null in order to let Docker assign them dynamically/using defaults. + * A {@link Binding} represents a socket on the Docker host that is used in a {@link PortBinding}. It is characterized by an + * {@link #getHostIp() IP address} and a {@link #getHostPort() port number}. Both properties may be null in order to let + * Docker assign them dynamically/using defaults. * * @see Ports#bind(ExposedPort, Binding) * @see ExposedPort @@ -139,8 +137,7 @@ public static class Binding { 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 #getHostIp() IP address} and {@link #getHostPort() port number}. * * @see Ports#bind(ExposedPort, Binding) * @see ExposedPort @@ -151,8 +148,8 @@ public Binding(String hostIp, Integer hostPort) { } /** - * Creates a {@link Binding} for the given {@link #getHostPort() port number}, leaving the {@link #getHostIp() - * IP address} undefined. + * Creates a {@link Binding} for the given {@link #getHostPort() port number}, leaving the {@link #getHostIp() IP address} + * undefined. * * @see Ports#bind(ExposedPort, Binding) * @see ExposedPort @@ -162,32 +159,30 @@ public Binding(Integer 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}, leaving the {@link #getHostPort() port number} + * undefined. */ public Binding(String hostIp) { this(hostIp, null); } /** - * Creates a {@link Binding} with both {@link #getHostIp() IP address} and {@link #getHostPort() port number} - * undefined. + * Creates a {@link Binding} with both {@link #getHostIp() IP address} and {@link #getHostPort() port number} undefined. */ public Binding() { this(null, null); } /** - * @return the IP address on the Docker host. May be null, in which case Docker will bind the port - * to all interfaces (0.0.0.0). + * @return the IP address on the Docker host. May be null, in which case Docker will bind the port to all interfaces ( + * 0.0.0.0). */ public String getHostIp() { return hostIp; } /** - * @return the port number on the Docker host. May be null, in which case Docker will dynamically - * assign a port. + * @return the port number on the Docker host. May be null, in which case Docker will dynamically assign a port. */ public Integer getHostPort() { return hostPort; @@ -212,15 +207,15 @@ 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])); - } - case 1: { - return parts[0].contains(".") ? new Binding(parts[0]) : new Binding(Integer.valueOf(parts[0])); - } - default: { - throw new IllegalArgumentException(); - } + case 2: { + return new Binding(parts[0], Integer.valueOf(parts[1])); + } + case 1: { + return parts[0].contains(".") ? new Binding(parts[0]) : new Binding(Integer.valueOf(parts[0])); + } + default: { + throw new IllegalArgumentException(); + } } } catch (Exception e) { throw new IllegalArgumentException("Error parsing Binding '" + serialized + "'"); @@ -228,8 +223,8 @@ public static Binding parse(String serialized) throws IllegalArgumentException { } /** - * Returns a string representation of this {@link Binding} suitable for inclusion in a JSON message. The format - * is [IP:]Port, like the argument in {@link #parse(String)}. + * Returns a string representation of this {@link Binding} suitable for inclusion in a JSON message. The format is + * [IP:]Port, like the argument in {@link #parse(String)}. * * @return a string representation of this {@link Binding} */ diff --git a/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java b/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java index d5c8f6e8e..ac6c4a318 100644 --- a/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java +++ b/src/main/java/com/github/dockerjava/api/model/RestartPolicy.java @@ -15,8 +15,7 @@ *

        Do not restart the container if it dies. (default)
        * *
        on-failure
        - *
        Restart the container if it exits with a non-zero exit code. Can also accept an optional maximum restart count - * (e.g. on-failure:5). + *
        Restart the container if it exits with a non-zero exit code. Can also accept an optional maximum restart count (e.g. on-failure:5). *
        * *
        always
        @@ -111,8 +110,8 @@ public static RestartPolicy parse(String serialized) throws IllegalArgumentExcep } /** - * Returns a string representation of this {@link RestartPolicy}. The format is name[:count], like the - * argument in {@link #parse(String)}. + * Returns a string representation of this {@link RestartPolicy}. The format is name[:count], like the argument in + * {@link #parse(String)}. * * @return a string representation of this {@link RestartPolicy} */ diff --git a/src/main/java/com/github/dockerjava/api/model/Ulimit.java b/src/main/java/com/github/dockerjava/api/model/Ulimit.java index 51602e043..7427fb0cc 100644 --- a/src/main/java/com/github/dockerjava/api/model/Ulimit.java +++ b/src/main/java/com/github/dockerjava/api/model/Ulimit.java @@ -45,7 +45,7 @@ public Integer getHard() { return hard; } - //CHECKSTYLE:OFF + // CHECKSTYLE:OFF @Override public boolean equals(Object obj) { if (obj instanceof Ulimit) { @@ -61,5 +61,5 @@ public boolean equals(Object obj) { public int hashCode() { return new HashCodeBuilder().append(name).append(soft).append(hard).toHashCode(); } - //CHECKSTYLE:ON + // CHECKSTYLE:ON } diff --git a/src/main/java/com/github/dockerjava/api/model/VolumeRW.java b/src/main/java/com/github/dockerjava/api/model/VolumeRW.java index 3709d1b0c..7c4bdfb26 100644 --- a/src/main/java/com/github/dockerjava/api/model/VolumeRW.java +++ b/src/main/java/com/github/dockerjava/api/model/VolumeRW.java @@ -53,8 +53,8 @@ public AccessMode getAccessMode() { } /** - * Returns a string representation of this {@link VolumeRW} suitable for inclusion in a JSON message. The returned - * String is simply the container path, {@link #getPath()}. + * Returns a string representation of this {@link VolumeRW} suitable for inclusion in a JSON message. The returned String is simply the + * container path, {@link #getPath()}. * * @return a string representation of this {@link VolumeRW} */ diff --git a/src/main/java/com/github/dockerjava/api/model/VolumesFrom.java b/src/main/java/com/github/dockerjava/api/model/VolumesFrom.java index 78585ef48..f027b6d71 100644 --- a/src/main/java/com/github/dockerjava/api/model/VolumesFrom.java +++ b/src/main/java/com/github/dockerjava/api/model/VolumesFrom.java @@ -55,16 +55,16 @@ public static VolumesFrom parse(String serialized) { try { String[] parts = serialized.split(":"); switch (parts.length) { - case 1: { - return new VolumesFrom(parts[0]); - } - case 2: { - return new VolumesFrom(parts[0], AccessMode.valueOf(parts[1])); - } - - default: { - throw new IllegalArgumentException(); - } + case 1: { + return new VolumesFrom(parts[0]); + } + case 2: { + return new VolumesFrom(parts[0], AccessMode.valueOf(parts[1])); + } + + default: { + throw new IllegalArgumentException(); + } } } catch (Exception e) { throw new IllegalArgumentException("Error parsing Bind '" + serialized + "'"); @@ -88,8 +88,8 @@ public int hashCode() { } /** - * Returns a string representation of this {@link VolumesFrom} suitable for inclusion in a JSON message. The format - * is <container>:<access mode>, like the argument in {@link #parse(String)}. + * Returns a string representation of this {@link VolumesFrom} suitable for inclusion in a JSON message. The format is + * <container>:<access mode>, like the argument in {@link #parse(String)}. * * @return a string representation of this {@link VolumesFrom} */ diff --git a/src/main/java/com/github/dockerjava/core/AuthConfigFile.java b/src/main/java/com/github/dockerjava/core/AuthConfigFile.java index 7315a05af..1a4ef5a47 100644 --- a/src/main/java/com/github/dockerjava/core/AuthConfigFile.java +++ b/src/main/java/com/github/dockerjava/core/AuthConfigFile.java @@ -63,7 +63,7 @@ public AuthConfigurations getAuthConfigurations() { return authConfigurations; } - //CHECKSTYLE:OFF + // CHECKSTYLE:OFF @Override public int hashCode() { final int prime = 31; @@ -88,7 +88,8 @@ public boolean equals(Object obj) { return false; return true; } - //CHECKSTYLE:ON + + // CHECKSTYLE:ON @Override public String toString() { diff --git a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java index 35f54c736..89c4d3787 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java @@ -178,10 +178,11 @@ private static Properties overrideDockerPropertiesWithSystemProperties(Propertie Properties overriddenProperties = new Properties(); overriddenProperties.putAll(p); - for (String key : new String[]{DOCKER_IO_URL_PROPERTY, DOCKER_IO_VERSION_PROPERTY, + for (String key : new String[] { + DOCKER_IO_URL_PROPERTY, DOCKER_IO_VERSION_PROPERTY, DOCKER_IO_USERNAME_PROPERTY, DOCKER_IO_PASSWORD_PROPERTY, DOCKER_IO_EMAIL_PROPERTY, DOCKER_IO_SERVER_ADDRESS_PROPERTY, DOCKER_IO_DOCKER_CERT_PATH_PROPERTY, - DOCKER_IO_DOCKER_CFG_PATH_PROPERTY, }) { + DOCKER_IO_DOCKER_CFG_PATH_PROPERTY}) { if (systemProperties.containsKey(key)) { overriddenProperties.setProperty(key, systemProperties.getProperty(key)); } @@ -295,7 +296,7 @@ public AuthConfigurations getAuthConfigurations() { return new AuthConfigurations(); } - //CHECKSTYLE:OFF + // CHECKSTYLE:OFF @Override public boolean equals(Object o) { if (this == o) @@ -337,7 +338,8 @@ public int hashCode() { result = 31 * result + (sslConfig != null ? sslConfig.hashCode() : 0); return result; } - //CHECKSTYLE:ON + + // CHECKSTYLE:ON @Override public String toString() { @@ -354,10 +356,9 @@ public static class DockerClientConfigBuilder { private SSLConfig sslConfig; /** - * This will set all fields in the builder to those contained in the Properties object. The Properties object - * should contain the following docker.io.* keys: url, version, username, password, email, dockerCertPath, and - * dockerCfgPath. If docker.io.readTimeout or docker.io.enableLoggingFilter are not contained, they will be set - * to 1000 and true, respectively. + * This will set all fields in the builder to those contained in the Properties object. The Properties object should contain the + * following docker.io.* keys: url, version, username, password, email, dockerCertPath, and dockerCfgPath. If docker.io.readTimeout + * or docker.io.enableLoggingFilter are not contained, they will be set to 1000 and true, respectively. */ public DockerClientConfigBuilder withProperties(Properties p) { return withUri(p.getProperty(DOCKER_IO_URL_PROPERTY)) diff --git a/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java b/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java index 7bed65c5b..5dabdf404 100644 --- a/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java +++ b/src/main/java/com/github/dockerjava/core/GoLangFileMatch.java @@ -116,22 +116,22 @@ static ScanResult scanChunk(String pattern) { int i; Scan: for (i = 0; i < pattern.length(); i++) { switch (pattern.charAt(i)) { - case '\\': { - if (!IS_WINDOWS && i + 1 < pattern.length()) { - i++; - } - break; - } - case '[': - inRange = true; - break; - case ']': - inRange = false; - break; - case '*': - if (!inRange) { - break Scan; + case '\\': { + if (!IS_WINDOWS && i + 1 < pattern.length()) { + i++; + } + break; } + case '[': + inRange = true; + break; + case ']': + inRange = false; + break; + case '*': + if (!inRange) { + break Scan; + } } } return new ScanResult(star, pattern.substring(0, i), pattern.substring(i)); @@ -148,68 +148,68 @@ static String matchChunk(String chunk, String s) { return null; } switch (chunk.charAt(chunkOffset)) { - case '[': - r = s.charAt(sOffset); - sOffset++; - chunkOffset++; - // We can't end right after '[', we're expecting at least - // a closing bracket and possibly a caret. - if (chunkOffset == chunkLength) { - throw new GoLangFileMatchException(); - } - // possibly negated - boolean negated = chunk.charAt(chunkOffset) == '^'; - if (negated) { + case '[': + r = s.charAt(sOffset); + sOffset++; chunkOffset++; - } - // parse all ranges - boolean match = false; - int nrange = 0; - while (true) { - if (chunkOffset < chunkLength && chunk.charAt(chunkOffset) == ']' && nrange > 0) { + // We can't end right after '[', we're expecting at least + // a closing bracket and possibly a caret. + if (chunkOffset == chunkLength) { + throw new GoLangFileMatchException(); + } + // possibly negated + boolean negated = chunk.charAt(chunkOffset) == '^'; + if (negated) { chunkOffset++; - break; } - GetEscResult result = getEsc(chunk, chunkOffset, chunkLength); - char lo = result.lo; - char hi = lo; - chunkOffset = result.chunkOffset; - if (chunk.charAt(chunkOffset) == '-') { - result = getEsc(chunk, ++chunkOffset, chunkLength); + // parse all ranges + boolean match = false; + int nrange = 0; + while (true) { + if (chunkOffset < chunkLength && chunk.charAt(chunkOffset) == ']' && nrange > 0) { + chunkOffset++; + break; + } + GetEscResult result = getEsc(chunk, chunkOffset, chunkLength); + char lo = result.lo; + char hi = lo; chunkOffset = result.chunkOffset; - hi = result.lo; + if (chunk.charAt(chunkOffset) == '-') { + result = getEsc(chunk, ++chunkOffset, chunkLength); + chunkOffset = result.chunkOffset; + hi = result.lo; + } + if (lo <= r && r <= hi) { + match = true; + } + nrange++; } - if (lo <= r && r <= hi) { - match = true; + if (match == negated) { + return null; } - nrange++; - } - if (match == negated) { - return null; - } - break; + break; - case '?': - if (s.charAt(sOffset) == File.separatorChar) { - return null; - } - sOffset++; - chunkOffset++; - break; - case '\\': - if (!IS_WINDOWS) { + case '?': + if (s.charAt(sOffset) == File.separatorChar) { + return null; + } + sOffset++; chunkOffset++; - if (chunkOffset == chunkLength) { - throw new GoLangFileMatchException(); + break; + case '\\': + if (!IS_WINDOWS) { + chunkOffset++; + if (chunkOffset == chunkLength) { + throw new GoLangFileMatchException(); + } } - } - // fallthrough - default: - if (chunk.charAt(chunkOffset) != s.charAt(sOffset)) { - return null; - } - sOffset++; - chunkOffset++; + // fallthrough + default: + if (chunk.charAt(chunkOffset) != s.charAt(sOffset)) { + return null; + } + sOffset++; + chunkOffset++; } } return s.substring(sOffset); diff --git a/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java b/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java index bdc2e6e89..43946a53b 100644 --- a/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java +++ b/src/main/java/com/github/dockerjava/core/KeystoreSSLConfig.java @@ -88,22 +88,24 @@ public SSLContext getSSLContext() throws KeyManagementException, UnrecoverableKe final KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory .getDefaultAlgorithm()); keyManagerFactory.init(keystore, keystorePassword.toCharArray()); - context.init(keyManagerFactory.getKeyManagers(), new TrustManager[]{new X509TrustManager() { - @Override - public X509Certificate[] getAcceptedIssuers() { - return new X509Certificate[] {}; - } + context.init(keyManagerFactory.getKeyManagers(), new TrustManager[] { + new X509TrustManager() { + @Override + public X509Certificate[] getAcceptedIssuers() { + return new X509Certificate[] {}; + } - @Override - public void checkClientTrusted(final X509Certificate[] arg0, final String arg1) { + @Override + public void checkClientTrusted(final X509Certificate[] arg0, final String arg1) { - } + } - @Override - public void checkServerTrusted(final X509Certificate[] arg0, final String arg1) { + @Override + public void checkServerTrusted(final X509Certificate[] arg0, final String arg1) { - } - } }, new SecureRandom()); + } + } + }, new SecureRandom()); return context; } diff --git a/src/main/java/com/github/dockerjava/core/NameParser.java b/src/main/java/com/github/dockerjava/core/NameParser.java index 5027422fd..1db59e3a0 100644 --- a/src/main/java/com/github/dockerjava/core/NameParser.java +++ b/src/main/java/com/github/dockerjava/core/NameParser.java @@ -17,14 +17,15 @@ public class NameParser { private NameParser() { } - //CHECKSTYLE:OFF + // CHECKSTYLE:OFF private static final int RepositoryNameTotalLengthMax = 255; private static final Pattern RepositoryNameComponentRegexp = Pattern.compile("[a-z0-9]+(?:[._-][a-z0-9]+)*"); private static final Pattern RepositoryNameComponentAnchoredRegexp = Pattern.compile("^" + RepositoryNameComponentRegexp.pattern() + "$"); - //CHECKSTYLE:ON + + // CHECKSTYLE:ON // private static final Pattern RepositoryNameRegexp = Pattern.compile("(?:" + // RepositoryNameComponentRegexp.pattern() diff --git a/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java b/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java index 80f9406b7..4a264ab17 100644 --- a/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java +++ b/src/main/java/com/github/dockerjava/core/RemoteApiVersion.java @@ -10,8 +10,8 @@ import com.google.common.base.Strings; /** - * Bean to encapsulate the version of the Docker Remote (REST) API + * Bean to encapsulate the version of the Docker Remote (REST) + * API *

        * Contains the minor and major version of the API as well as operations to compare API versions. * @@ -53,14 +53,12 @@ public class RemoteApiVersion implements Serializable { public static final RemoteApiVersion VERSION_1_21 = RemoteApiVersion.create(1, 21); /** - * @see Docker - * API 1.22 + * @see Docker API 1.22 */ public static final RemoteApiVersion VERSION_1_22 = RemoteApiVersion.create(1, 22); /** - * Unknown, docker doesn't reflect reality. I.e. we implemented method, but for javadoc it not clear when it was - * added. + * Unknown, docker doesn't reflect reality. I.e. we implemented method, but for javadoc it not clear when it was added. */ private static final RemoteApiVersion UNKNOWN_VERSION = new RemoteApiVersion(0, 0) { @@ -127,7 +125,7 @@ public boolean isGreaterOrEqual(final RemoteApiVersion other) { return false; } - //CHECKSTYLE:OFF + // CHECKSTYLE:OFF @Override public boolean equals(final Object o) { if (this == o) @@ -137,7 +135,8 @@ public boolean equals(final Object o) { final RemoteApiVersion that = (RemoteApiVersion) o; return Objects.equal(major, that.major) && Objects.equal(minor, that.minor); } - //CHECKSTYLE:ON + + // CHECKSTYLE:ON @Override public int hashCode() { diff --git a/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java b/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java index 0e146c1e9..edbf49827 100644 --- a/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java +++ b/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java @@ -103,8 +103,8 @@ public RC_T awaitCompletion(long timeout, TimeUnit timeUnit) throws InterruptedE } /** - * Blocks until {@link ResultCallback#onStart()} was called. {@link ResultCallback#onStart()} is called when the - * request was processed on the server side and the response is incoming. + * Blocks until {@link ResultCallback#onStart()} was called. {@link ResultCallback#onStart()} is called when the request was processed + * on the server side and the response is incoming. */ @SuppressWarnings("unchecked") public RC_T awaitStarted() throws InterruptedException { @@ -113,9 +113,8 @@ public RC_T awaitStarted() throws InterruptedException { } /** - * Blocks until {@link ResultCallback#onStart()} was called or the given timeout occurs. - * {@link ResultCallback#onStart()} is called when the request was processed on the server side and the response is - * incoming. + * Blocks until {@link ResultCallback#onStart()} was called or the given timeout occurs. {@link ResultCallback#onStart()} is called when + * the request was processed on the server side and the response is incoming. */ @SuppressWarnings("unchecked") public RC_T awaitStarted(long timeout, TimeUnit timeUnit) throws InterruptedException { diff --git a/src/main/java/com/github/dockerjava/core/command/ConnectToNetworkCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/ConnectToNetworkCmdImpl.java index cfb6cce14..7014704b1 100644 --- a/src/main/java/com/github/dockerjava/core/command/ConnectToNetworkCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/ConnectToNetworkCmdImpl.java @@ -27,12 +27,14 @@ public String getContainerId() { return containerId; } - @Override public ConnectToNetworkCmd withNetworkId(String networkId) { + @Override + public ConnectToNetworkCmd withNetworkId(String networkId) { this.networkId = networkId; return this; } - @Override public ConnectToNetworkCmd withContainerId(String containerId) { + @Override + public ConnectToNetworkCmd withContainerId(String containerId) { this.containerId = containerId; return this; } diff --git a/src/main/java/com/github/dockerjava/core/command/CreateNetworkCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/CreateNetworkCmdImpl.java index fba16dfb9..c7d3b0abb 100644 --- a/src/main/java/com/github/dockerjava/core/command/CreateNetworkCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/CreateNetworkCmdImpl.java @@ -1,6 +1,5 @@ package com.github.dockerjava.core.command; - import java.util.HashMap; import java.util.Map; @@ -12,7 +11,7 @@ import com.github.dockerjava.api.model.Network.Ipam; public class CreateNetworkCmdImpl extends AbstrDockerCmd - implements CreateNetworkCmd { + implements CreateNetworkCmd { @JsonProperty("Name") private String name; diff --git a/src/main/java/com/github/dockerjava/core/command/DisconnectFromNetworkCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/DisconnectFromNetworkCmdImpl.java index a89201ad2..ae24946b6 100644 --- a/src/main/java/com/github/dockerjava/core/command/DisconnectFromNetworkCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/DisconnectFromNetworkCmdImpl.java @@ -6,7 +6,7 @@ import com.github.dockerjava.api.command.DockerCmdSyncExec; public class DisconnectFromNetworkCmdImpl extends AbstrDockerCmd - implements DisconnectFromNetworkCmd { + implements DisconnectFromNetworkCmd { @JsonIgnore private String networkId; @@ -28,12 +28,14 @@ public String getContainerId() { return containerId; } - @Override public DisconnectFromNetworkCmd withNetworkId(String networkId) { + @Override + public DisconnectFromNetworkCmd withNetworkId(String networkId) { this.networkId = networkId; return this; } - @Override public DisconnectFromNetworkCmd withContainerId(String containerId) { + @Override + public DisconnectFromNetworkCmd withContainerId(String containerId) { this.containerId = containerId; return this; } diff --git a/src/main/java/com/github/dockerjava/core/command/ExecStartCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/ExecStartCmdImpl.java index 836c9158e..01532090a 100644 --- a/src/main/java/com/github/dockerjava/core/command/ExecStartCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/ExecStartCmdImpl.java @@ -61,7 +61,6 @@ public InputStream getStdin() { return stdin; } - @Override public ExecStartCmd withDetach(Boolean detach) { this.detach = detach; diff --git a/src/main/java/com/github/dockerjava/core/command/ExecStartResultCallback.java b/src/main/java/com/github/dockerjava/core/command/ExecStartResultCallback.java index 62e492db9..847d62057 100644 --- a/src/main/java/com/github/dockerjava/core/command/ExecStartResultCallback.java +++ b/src/main/java/com/github/dockerjava/core/command/ExecStartResultCallback.java @@ -34,21 +34,21 @@ public void onNext(Frame frame) { if (frame != null) { try { switch (frame.getStreamType()) { - case STDOUT: - case RAW: - if (stdout != null) { - stdout.write(frame.getPayload()); - stdout.flush(); - } - break; - case STDERR: - if (stderr != null) { - stderr.write(frame.getPayload()); - stderr.flush(); - } - break; - default: - LOGGER.error("unknown stream type:" + frame.getStreamType()); + case STDOUT: + case RAW: + if (stdout != null) { + stdout.write(frame.getPayload()); + stdout.flush(); + } + break; + case STDERR: + if (stderr != null) { + stderr.write(frame.getPayload()); + stderr.flush(); + } + break; + default: + LOGGER.error("unknown stream type:" + frame.getStreamType()); } } catch (IOException e) { onError(e); diff --git a/src/main/java/com/github/dockerjava/core/command/FrameReader.java b/src/main/java/com/github/dockerjava/core/command/FrameReader.java index 0e885082a..1e8ac0930 100644 --- a/src/main/java/com/github/dockerjava/core/command/FrameReader.java +++ b/src/main/java/com/github/dockerjava/core/command/FrameReader.java @@ -22,21 +22,20 @@ public class FrameReader implements AutoCloseable { private Boolean rawStreamDetected = false; - public FrameReader(InputStream inputStream) { this.inputStream = inputStream; } private static StreamType streamType(byte streamType) { switch (streamType) { - case 0: - return StreamType.STDIN; - case 1: - return StreamType.STDOUT; - case 2: - return StreamType.STDERR; - default: - return StreamType.RAW; + case 0: + return StreamType.STDIN; + case 1: + return StreamType.STDOUT; + case 2: + return StreamType.STDERR; + default: + return StreamType.RAW; } } diff --git a/src/main/java/com/github/dockerjava/core/command/InpectNetworkCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/InpectNetworkCmdImpl.java index 0a0c564c5..7d9ef75b1 100644 --- a/src/main/java/com/github/dockerjava/core/command/InpectNetworkCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/InpectNetworkCmdImpl.java @@ -12,11 +12,13 @@ public InpectNetworkCmdImpl(DockerCmdSyncExec exec) super(exec); } - @Override public String getNetworkId() { + @Override + public String getNetworkId() { return networkId; } - @Override public InspectNetworkCmd withNetworkId(String networkId) { + @Override + public InspectNetworkCmd withNetworkId(String networkId) { this.networkId = networkId; return this; diff --git a/src/main/java/com/github/dockerjava/core/command/LogContainerCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/LogContainerCmdImpl.java index f561a6deb..aa267fc8f 100644 --- a/src/main/java/com/github/dockerjava/core/command/LogContainerCmdImpl.java +++ b/src/main/java/com/github/dockerjava/core/command/LogContainerCmdImpl.java @@ -22,8 +22,8 @@ * @param tail * - `all` or ``, Output specified number of lines at the end of logs * @param since - * - UNIX timestamp (integer) to filter logs. Specifying a timestamp will only output log-entries since that - * timestamp. Default: 0 (unfiltered) + * - UNIX timestamp (integer) to filter logs. Specifying a timestamp will only output log-entries since that timestamp. Default: + * 0 (unfiltered) */ public class LogContainerCmdImpl extends AbstrAsyncDockerCmd implements LogContainerCmd { diff --git a/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java b/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java index 9a94d6b1d..8c1c34e2a 100644 --- a/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java +++ b/src/main/java/com/github/dockerjava/core/dockerfile/Dockerfile.java @@ -213,8 +213,8 @@ private List matchingIgnorePatterns(String fileName) { } /** - * Returns the matching ignore pattern for the given file or null if it should NOT be ignored. Exception rules - * like "!Dockerfile" will be respected. + * Returns the matching ignore pattern for the given file or null if it should NOT be ignored. Exception rules like "!Dockerfile" + * will be respected. */ private String effectiveMatchingIgnorePattern(File file) { String relativeFilename = FilePathUtil.relativize(getDockerFolder(), file); diff --git a/src/main/java/com/github/dockerjava/core/util/CompressArchiveUtil.java b/src/main/java/com/github/dockerjava/core/util/CompressArchiveUtil.java index c63489d85..5052dda40 100644 --- a/src/main/java/com/github/dockerjava/core/util/CompressArchiveUtil.java +++ b/src/main/java/com/github/dockerjava/core/util/CompressArchiveUtil.java @@ -54,8 +54,8 @@ private static TarArchiveOutputStream buildTarStream(Path outputPath, boolean gZ * @param outputPath * where to put the archived file * @param childrenOnly - * if inputPath is directory and if childrenOnly is true, the archive will contain all of its children, - * else the archive contains unique entry which is the inputPath itself + * if inputPath is directory and if childrenOnly is true, the archive will contain all of its children, else the archive + * contains unique entry which is the inputPath itself * @param gZipped * compress with gzip algorithm */ diff --git a/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java b/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java index 7ad380481..4d71014dd 100644 --- a/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java +++ b/src/main/java/com/github/dockerjava/core/util/FiltersBuilder.java @@ -81,7 +81,7 @@ private static List labelsMapToList(Map labels) { return result; } - //CHECKSTYLE:OFF + // CHECKSTYLE:OFF @Override public boolean equals(Object o) { if (this == o) @@ -94,7 +94,8 @@ public boolean equals(Object o) { return filters.equals(filters1.filters); } - //CHECKSTYLE:ON + + // CHECKSTYLE:ON @Override public int hashCode() { diff --git a/src/main/java/com/github/dockerjava/jaxrs/ApacheUnixSocket.java b/src/main/java/com/github/dockerjava/jaxrs/ApacheUnixSocket.java index e30028f34..a1b860b28 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/ApacheUnixSocket.java +++ b/src/main/java/com/github/dockerjava/jaxrs/ApacheUnixSocket.java @@ -35,13 +35,11 @@ import org.newsclub.net.unix.AFUNIXSocket; /** - * Provides a socket that wraps an org.newsclub.net.unix.AFUNIXSocket and delays setting options until the socket is - * connected. This is necessary because the Apache HTTP client attempts to set options prior to connecting the socket, - * which doesn't work for Unix sockets since options are being set on the underlying file descriptor. Until the socket - * is connected, the file descriptor doesn't exist. + * Provides a socket that wraps an org.newsclub.net.unix.AFUNIXSocket and delays setting options until the socket is connected. This is + * necessary because the Apache HTTP client attempts to set options prior to connecting the socket, which doesn't work for Unix sockets + * since options are being set on the underlying file descriptor. Until the socket is connected, the file descriptor doesn't exist. * - * This class also noop's any calls to setReuseAddress, which is called by the Apache client but isn't supported by - * AFUnixSocket. + * This class also noop's any calls to setReuseAddress, which is called by the Apache client but isn't supported by AFUnixSocket. */ public class ApacheUnixSocket extends Socket { diff --git a/src/main/java/com/github/dockerjava/jaxrs/ConnectToNetworkCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/ConnectToNetworkCmdExec.java index dfc730e03..8a69b31fd 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/ConnectToNetworkCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/ConnectToNetworkCmdExec.java @@ -11,7 +11,7 @@ import static javax.ws.rs.client.Entity.entity; public class ConnectToNetworkCmdExec extends AbstrSyncDockerCmdExec - implements ConnectToNetworkCmd.Exec { + implements ConnectToNetworkCmd.Exec { private static final Logger LOGGER = LoggerFactory.getLogger(ConnectToNetworkCmdExec.class); diff --git a/src/main/java/com/github/dockerjava/jaxrs/DisconnectFromNetworkCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/DisconnectFromNetworkCmdExec.java index 4f6f54576..95c3f5c22 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/DisconnectFromNetworkCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/DisconnectFromNetworkCmdExec.java @@ -11,7 +11,7 @@ import static javax.ws.rs.client.Entity.entity; public class DisconnectFromNetworkCmdExec extends AbstrSyncDockerCmdExec - implements DisconnectFromNetworkCmd.Exec { + implements DisconnectFromNetworkCmd.Exec { private static final Logger LOGGER = LoggerFactory.getLogger(DisconnectFromNetworkCmdExec.class); diff --git a/src/main/java/com/github/dockerjava/jaxrs/InspectNetworkCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/InspectNetworkCmdExec.java index c5e6b4d0a..c9b19f881 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/InspectNetworkCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/InspectNetworkCmdExec.java @@ -17,10 +17,11 @@ public InspectNetworkCmdExec(WebTarget baseResource, DockerClientConfig dockerCl super(baseResource, dockerClientConfig); } - @Override protected Network execute(InspectNetworkCmd command) { + @Override + protected Network execute(InspectNetworkCmd command) { WebTarget webResource = getBaseResource().path("/networks/{id}").resolveTemplate("id", - command.getNetworkId()); + command.getNetworkId()); LOGGER.debug("GET: {}", webResource); return webResource.request().accept(MediaType.APPLICATION_JSON).get(Network.class); diff --git a/src/main/java/com/github/dockerjava/jaxrs/RemoveNetworkCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/RemoveNetworkCmdExec.java index 84f115d4c..acc2bdd27 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/RemoveNetworkCmdExec.java +++ b/src/main/java/com/github/dockerjava/jaxrs/RemoveNetworkCmdExec.java @@ -9,7 +9,7 @@ import javax.ws.rs.core.MediaType; public class RemoveNetworkCmdExec extends AbstrSyncDockerCmdExec - implements RemoveNetworkCmd.Exec { + implements RemoveNetworkCmd.Exec { private static final Logger LOGGER = LoggerFactory.getLogger(RemoveNetworkCmdExec.class); diff --git a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java index 7994f3261..68b47bfa8 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java +++ b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnector.java @@ -142,32 +142,29 @@ *

      • {@link ApacheClientProperties#SSL_CONFIG}
      • *
      *

      - * This connector uses {@link RequestEntityProcessing#CHUNKED chunked encoding} as a default setting. This can be - * overridden by the {@link ClientProperties#REQUEST_ENTITY_PROCESSING}. By default the - * {@link ClientProperties#CHUNKED_ENCODING_SIZE} property is only supported by using default connection manager. If - * custom connection manager needs to be used then chunked encoding size can be set by providing a custom - * {@link org.apache.http.HttpClientConnection} (via custom - * {@link org.apache.http.impl.conn.ManagedHttpClientConnectionFactory}) and overriding {@code createOutputStream} - * method. + * This connector uses {@link RequestEntityProcessing#CHUNKED chunked encoding} as a default setting. This can be overridden by the + * {@link ClientProperties#REQUEST_ENTITY_PROCESSING}. By default the {@link ClientProperties#CHUNKED_ENCODING_SIZE} property is only + * supported by using default connection manager. If custom connection manager needs to be used then chunked encoding size can be set by + * providing a custom {@link org.apache.http.HttpClientConnection} (via custom + * {@link org.apache.http.impl.conn.ManagedHttpClientConnectionFactory}) and overriding {@code createOutputStream} method. *

      *

      - * Using of authorization is dependent on the chunk encoding setting. If the entity buffering is enabled, the entity is - * buffered and authorization can be performed automatically in response to a 401 by sending the request again. When - * entity buffering is disabled (chunked encoding is used) then the property - * {@link org.glassfish.jersey.apache.connector.ApacheClientProperties#PREEMPTIVE_BASIC_AUTHENTICATION} must be set to - * {@code true}. + * Using of authorization is dependent on the chunk encoding setting. If the entity buffering is enabled, the entity is buffered and + * authorization can be performed automatically in response to a 401 by sending the request again. When entity buffering is disabled + * (chunked encoding is used) then the property + * {@link org.glassfish.jersey.apache.connector.ApacheClientProperties#PREEMPTIVE_BASIC_AUTHENTICATION} must be set to {@code true}. *

      *

      * If a {@link org.glassfish.jersey.client.ClientResponse} is obtained and an entity is not read from the response then - * {@link org.glassfish.jersey.client.ClientResponse#close()} MUST be called after processing the response to release - * connection-based resources. + * {@link org.glassfish.jersey.client.ClientResponse#close()} MUST be called after processing the response to release connection-based + * resources. *

      *

      * Client operations are thread safe, the HTTP connection may be shared between different threads. *

      *

      - * If a response entity is obtained that is an instance of {@link Closeable} then the instance MUST be closed after - * processing the entity to release connection-based resources. + * If a response entity is obtained that is an instance of {@link Closeable} then the instance MUST be closed after processing the entity to + * release connection-based resources. *

      *

      * The following methods are currently supported: HEAD, GET, POST, PUT, DELETE, OPTIONS, PATCH and TRACE. @@ -404,8 +401,7 @@ public HttpClient getHttpClient() { /** * Get the {@link CookieStore}. * - * @return the {@link CookieStore} instance or {@code null} when {@value ApacheClientProperties#DISABLE_COOKIES} set - * to {@code true}. + * @return the {@link CookieStore} instance or {@code null} when {@value ApacheClientProperties#DISABLE_COOKIES} set to {@code true}. */ public CookieStore getCookieStore() { return cookieStore; diff --git a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnectorProvider.java b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnectorProvider.java index 00deefe85..eafb55c29 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnectorProvider.java +++ b/src/main/java/com/github/dockerjava/jaxrs/connector/ApacheConnectorProvider.java @@ -51,8 +51,8 @@ import org.glassfish.jersey.client.spi.ConnectorProvider; /** - * Connector provider for Jersey {@link Connector connectors} that utilize Apache HTTP Client to send and receive HTTP - * request and responses. + * Connector provider for Jersey {@link Connector connectors} that utilize Apache HTTP Client to send and receive HTTP request and + * responses. *

      * The following connector configuration properties are supported: *

        @@ -70,30 +70,28 @@ *
      *

      *

      - * Connector instances created via this connector provider use - * {@link org.glassfish.jersey.client.RequestEntityProcessing#CHUNKED chunked encoding} as a default setting. This can - * be overridden by the {@link org.glassfish.jersey.client.ClientProperties#REQUEST_ENTITY_PROCESSING}. By default the - * {@link org.glassfish.jersey.client.ClientProperties#CHUNKED_ENCODING_SIZE} property is only supported when using the - * default {@code org.apache.http.conn.HttpClientConnectionManager} instance. If custom connection manager is used, then - * chunked encoding size can be set by providing a custom {@code org.apache.http.HttpClientConnection} (via custom - * {@code org.apache.http.impl.conn.ManagedHttpClientConnectionFactory}) and overriding it's {@code createOutputStream} - * method. + * Connector instances created via this connector provider use {@link org.glassfish.jersey.client.RequestEntityProcessing#CHUNKED chunked + * encoding} as a default setting. This can be overridden by the + * {@link org.glassfish.jersey.client.ClientProperties#REQUEST_ENTITY_PROCESSING}. By default the + * {@link org.glassfish.jersey.client.ClientProperties#CHUNKED_ENCODING_SIZE} property is only supported when using the default + * {@code org.apache.http.conn.HttpClientConnectionManager} instance. If custom connection manager is used, then chunked encoding size can + * be set by providing a custom {@code org.apache.http.HttpClientConnection} (via custom + * {@code org.apache.http.impl.conn.ManagedHttpClientConnectionFactory}) and overriding it's {@code createOutputStream} method. *

      *

      - * Use of authorization by the AHC-based connectors is dependent on the chunk encoding setting. If the entity buffering - * is enabled, the entity is buffered and authorization can be performed automatically in response to a 401 by sending - * the request again. When entity buffering is disabled (chunked encoding is used) then the property - * {@link org.glassfish.jersey.apache.connector.ApacheClientProperties#PREEMPTIVE_BASIC_AUTHENTICATION} must be set to - * {@code true}. + * Use of authorization by the AHC-based connectors is dependent on the chunk encoding setting. If the entity buffering is enabled, the + * entity is buffered and authorization can be performed automatically in response to a 401 by sending the request again. When entity + * buffering is disabled (chunked encoding is used) then the property + * {@link org.glassfish.jersey.apache.connector.ApacheClientProperties#PREEMPTIVE_BASIC_AUTHENTICATION} must be set to {@code true}. *

      *

      * If a {@link org.glassfish.jersey.client.ClientResponse} is obtained and an entity is not read from the response then - * {@link org.glassfish.jersey.client.ClientResponse#close()} MUST be called after processing the response to release - * connection-based resources. + * {@link org.glassfish.jersey.client.ClientResponse#close()} MUST be called after processing the response to release connection-based + * resources. *

      *

      - * If a response entity is obtained that is an instance of {@link java.io.Closeable} then the instance MUST be closed - * after processing the entity to release connection-based resources. + * If a response entity is obtained that is an instance of {@link java.io.Closeable} then the instance MUST be closed after processing the + * entity to release connection-based resources. *

      *

      * The following methods are currently supported: HEAD, GET, POST, PUT, DELETE, OPTIONS, PATCH and TRACE. @@ -114,17 +112,16 @@ public Connector getConnector(Client client, Configuration runtimeConfig) { } /** - * Retrieve the underlying Apache {@link HttpClient} instance from {@link org.glassfish.jersey.client.JerseyClient} - * or {@link org.glassfish.jersey.client.JerseyWebTarget} configured to use {@code ApacheConnectorProvider}. + * Retrieve the underlying Apache {@link HttpClient} instance from {@link org.glassfish.jersey.client.JerseyClient} or + * {@link org.glassfish.jersey.client.JerseyWebTarget} configured to use {@code ApacheConnectorProvider}. * * @param component - * {@code JerseyClient} or {@code JerseyWebTarget} instance that is configured to use - * {@code ApacheConnectorProvider}. + * {@code JerseyClient} or {@code JerseyWebTarget} instance that is configured to use {@code ApacheConnectorProvider}. * @return underlying Apache {@code HttpClient} instance. * * @throws java.lang.IllegalArgumentException - * in case the {@code component} is neither {@code JerseyClient} nor {@code JerseyWebTarget} instance or - * in case the component is not configured to use a {@code ApacheConnectorProvider}. + * in case the {@code component} is neither {@code JerseyClient} nor {@code JerseyWebTarget} instance or in case the + * component is not configured to use a {@code ApacheConnectorProvider}. * @since 2.8 */ public static HttpClient getHttpClient(Configurable component) { diff --git a/src/main/java/com/github/dockerjava/jaxrs/filter/FollowRedirectsFilter.java b/src/main/java/com/github/dockerjava/jaxrs/filter/FollowRedirectsFilter.java index cb5cd0687..4a7765d97 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/filter/FollowRedirectsFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/filter/FollowRedirectsFilter.java @@ -9,9 +9,9 @@ import javax.ws.rs.core.Response; /** - * Default implementation of RedirectStrategy honors the restrictions on automatic redirection of entity enclosing - * methods such as POST and PUT imposed by the HTTP specification. 302 Moved Temporarily, 301 Moved Permanently and 307 - * Temporary Redirect status codes will result in an automatic redirect of HEAD and GET methods only. + * Default implementation of RedirectStrategy honors the restrictions on automatic redirection of entity enclosing methods such as POST and + * PUT imposed by the HTTP specification. 302 Moved Temporarily, 301 Moved Permanently and 307 Temporary Redirect status codes will result + * in an automatic redirect of HEAD and GET methods only. * * {@link org.apache.http.impl.client.DefaultRedirectStrategy} * diff --git a/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java b/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java index 76666fe4e..8c9848318 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/filter/LoggingFilter.java @@ -116,8 +116,8 @@ public int compare(final Map.Entry> o1, final Map.Entry, RES_T> extends AbstrDockerCmdExec implements DockerCmdSyncExec { diff --git a/src/main/java/com/github/dockerjava/netty/exec/CommitCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/CommitCmdExec.java index eaba91fdb..e568345cd 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/CommitCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/CommitCmdExec.java @@ -28,7 +28,8 @@ protected String execute(CommitCmd command) { LOGGER.trace("POST: {}", webTarget); ObjectNode objectNode = webTarget.request().accept(MediaType.APPLICATION_JSON) - .post(command, new TypeReference() { }); + .post(command, new TypeReference() { + }); return objectNode.get("Id").asText(); } diff --git a/src/main/java/com/github/dockerjava/netty/exec/ConnectToNetworkCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/ConnectToNetworkCmdExec.java index b1090f4c3..b7bff9d52 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/ConnectToNetworkCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/ConnectToNetworkCmdExec.java @@ -6,9 +6,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; - public class ConnectToNetworkCmdExec extends AbstrSyncDockerCmdExec - implements ConnectToNetworkCmd.Exec { + implements ConnectToNetworkCmd.Exec { private static final Logger LOGGER = LoggerFactory.getLogger(ConnectToNetworkCmdExec.class); diff --git a/src/main/java/com/github/dockerjava/netty/exec/CreateImageCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/CreateImageCmdExec.java index 0e182e8bc..8fd791f53 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/CreateImageCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/CreateImageCmdExec.java @@ -26,6 +26,7 @@ protected CreateImageResponse execute(CreateImageCmd command) { LOGGER.trace("POST: {}", webResource); return webResource.request().accept(MediaType.APPLICATION_OCTET_STREAM) - .post(new TypeReference() { }, command.getImageStream()); + .post(new TypeReference() { + }, command.getImageStream()); } } diff --git a/src/main/java/com/github/dockerjava/netty/exec/DisconnectFromNetworkCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/DisconnectFromNetworkCmdExec.java index 8b814bddc..ef139517f 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/DisconnectFromNetworkCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/DisconnectFromNetworkCmdExec.java @@ -6,9 +6,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; - public class DisconnectFromNetworkCmdExec extends AbstrSyncDockerCmdExec - implements DisconnectFromNetworkCmd.Exec { + implements DisconnectFromNetworkCmd.Exec { private static final Logger LOGGER = LoggerFactory.getLogger(DisconnectFromNetworkCmdExec.class); diff --git a/src/main/java/com/github/dockerjava/netty/exec/InfoCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/InfoCmdExec.java index 288765650..8fc211322 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/InfoCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/InfoCmdExec.java @@ -10,8 +10,7 @@ import com.github.dockerjava.netty.WebTarget; /** - * http://stackoverflow.com/questions/33296749/netty-connect-to-unix-domain- socket-failed - * http://netty.io/wiki/native-transports.html + * http://stackoverflow.com/questions/33296749/netty-connect-to-unix-domain- socket-failed http://netty.io/wiki/native-transports.html * https://github.com/netty/netty/blob/master/example/src/main/java/io/netty/ example/http/snoop/HttpSnoopClient.java * * @author Marcus Linke diff --git a/src/main/java/com/github/dockerjava/netty/exec/LogContainerCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/LogContainerCmdExec.java index 911780362..a23bcb20d 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/LogContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/LogContainerCmdExec.java @@ -9,7 +9,6 @@ import com.github.dockerjava.core.DockerClientConfig; import com.github.dockerjava.netty.WebTarget; - public class LogContainerCmdExec extends AbstrAsyncDockerCmdExec implements LogContainerCmd.Exec { diff --git a/src/main/java/com/github/dockerjava/netty/exec/RestartContainerCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/RestartContainerCmdExec.java index 6c1f47a0b..df9721054 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/RestartContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/RestartContainerCmdExec.java @@ -8,7 +8,6 @@ import com.github.dockerjava.netty.MediaType; import com.github.dockerjava.netty.WebTarget; - public class RestartContainerCmdExec extends AbstrSyncDockerCmdExec implements RestartContainerCmd.Exec { diff --git a/src/main/java/com/github/dockerjava/netty/exec/StopContainerCmdExec.java b/src/main/java/com/github/dockerjava/netty/exec/StopContainerCmdExec.java index 3bade97e7..cd85d92c2 100644 --- a/src/main/java/com/github/dockerjava/netty/exec/StopContainerCmdExec.java +++ b/src/main/java/com/github/dockerjava/netty/exec/StopContainerCmdExec.java @@ -8,8 +8,6 @@ import com.github.dockerjava.netty.MediaType; import com.github.dockerjava.netty.WebTarget; - - public class StopContainerCmdExec extends AbstrSyncDockerCmdExec implements StopContainerCmd.Exec { diff --git a/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java b/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java index b58292b51..0567050d2 100644 --- a/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java +++ b/src/main/java/com/github/dockerjava/netty/handler/FramedResponseStreamHandler.java @@ -138,14 +138,14 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws E private static StreamType streamType(byte streamType) { switch (streamType) { - case 0: - return StreamType.STDIN; - case 1: - return StreamType.STDOUT; - case 2: - return StreamType.STDERR; - default: - return StreamType.RAW; + case 0: + return StreamType.STDIN; + case 1: + return StreamType.STDOUT; + case 2: + return StreamType.STDERR; + default: + return StreamType.RAW; } } diff --git a/src/main/java/com/github/dockerjava/netty/handler/HttpResponseHandler.java b/src/main/java/com/github/dockerjava/netty/handler/HttpResponseHandler.java index cbe8686d9..571fa9be5 100644 --- a/src/main/java/com/github/dockerjava/netty/handler/HttpResponseHandler.java +++ b/src/main/java/com/github/dockerjava/netty/handler/HttpResponseHandler.java @@ -25,8 +25,8 @@ import com.github.dockerjava.api.exception.UnauthorizedException; /** - * Handler that is responsible to handle an incoming {@link HttpResponse}. It evaluates the status code and triggers the - * appropriate lifecycle methods at the passed {@link ResultCallback}. + * Handler that is responsible to handle an incoming {@link HttpResponse}. It evaluates the status code and triggers the appropriate + * lifecycle methods at the passed {@link ResultCallback}. * * @author Marcus Linke */ @@ -66,49 +66,49 @@ public void close() { ByteBuf byteBuf = content.content(); switch (response.status().code()) { - case 200: - case 201: - case 204: - ctx.fireChannelRead(byteBuf); - break; - default: - errorBody.writeBytes(byteBuf); + case 200: + case 201: + case 204: + ctx.fireChannelRead(byteBuf); + break; + default: + errorBody.writeBytes(byteBuf); } if (content instanceof LastHttpContent) { try { switch (response.status().code()) { - case 101: - case 200: - case 201: - case 204: - break; - case 301: - case 302: - if (response.headers().contains(HttpHeaderNames.LOCATION)) { - String location = response.headers().get(HttpHeaderNames.LOCATION); - HttpRequest redirected = requestProvider.getHttpRequest(location); - - ctx.channel().writeAndFlush(redirected); - } - break; - case 304: - throw new NotModifiedException(getBodyAsMessage(errorBody)); - case 400: - throw new BadRequestException(getBodyAsMessage(errorBody)); - case 401: - throw new UnauthorizedException(getBodyAsMessage(errorBody)); - case 404: - throw new NotFoundException(getBodyAsMessage(errorBody)); - case 406: - throw new NotAcceptableException(getBodyAsMessage(errorBody)); - case 409: - throw new ConflictException(getBodyAsMessage(errorBody)); - case 500: - throw new InternalServerErrorException(getBodyAsMessage(errorBody)); - default: - throw new DockerException(getBodyAsMessage(errorBody), response.status().code()); + case 101: + case 200: + case 201: + case 204: + break; + case 301: + case 302: + if (response.headers().contains(HttpHeaderNames.LOCATION)) { + String location = response.headers().get(HttpHeaderNames.LOCATION); + HttpRequest redirected = requestProvider.getHttpRequest(location); + + ctx.channel().writeAndFlush(redirected); + } + break; + case 304: + throw new NotModifiedException(getBodyAsMessage(errorBody)); + case 400: + throw new BadRequestException(getBodyAsMessage(errorBody)); + case 401: + throw new UnauthorizedException(getBodyAsMessage(errorBody)); + case 404: + throw new NotFoundException(getBodyAsMessage(errorBody)); + case 406: + throw new NotAcceptableException(getBodyAsMessage(errorBody)); + case 409: + throw new ConflictException(getBodyAsMessage(errorBody)); + case 500: + throw new InternalServerErrorException(getBodyAsMessage(errorBody)); + default: + throw new DockerException(getBodyAsMessage(errorBody), response.status().code()); } } catch (Throwable e) { resultCallback.onError(e); diff --git a/src/test/java/com/github/dockerjava/api/model/AuthConfigTest.java b/src/test/java/com/github/dockerjava/api/model/AuthConfigTest.java index f718b1bdb..33066a84f 100644 --- a/src/test/java/com/github/dockerjava/api/model/AuthConfigTest.java +++ b/src/test/java/com/github/dockerjava/api/model/AuthConfigTest.java @@ -22,4 +22,4 @@ public void setUp() throws Exception { public void defaultServerAddress() throws Exception { assertEquals(new AuthConfig().getServerAddress(), "https://index.docker.io/v1/"); } -} \ No newline at end of file +} diff --git a/src/test/java/com/github/dockerjava/api/model/IdentifierTest.java b/src/test/java/com/github/dockerjava/api/model/IdentifierTest.java index 14325bd12..e8d4703db 100644 --- a/src/test/java/com/github/dockerjava/api/model/IdentifierTest.java +++ b/src/test/java/com/github/dockerjava/api/model/IdentifierTest.java @@ -34,4 +34,4 @@ public void testFromCompoundString() throws Exception { Identifier i6 = Identifier.fromCompoundString("10.0.0.1:5000/my-test-image:1234"); assertEquals(i6.repository.getPath(), "my-test-image"); } -} \ No newline at end of file +} 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 05a2b3f01..a5a8697f5 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 @@ -10,9 +10,8 @@ import com.github.dockerjava.api.model.Ports.Binding; /** - * 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 different {@link ExposedPort}s to {@link Ports}. This test verifies that the Map - * in {@link Ports} is populated correctly in both cases. + * 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 + * different {@link ExposedPort}s to {@link Ports}. This test verifies that the Map in {@link Ports} is populated correctly in both cases. */ public class Ports_addBindingsTest { private static final ExposedPort TCP_80 = ExposedPort.tcp(80); @@ -37,8 +36,8 @@ public void addTwoBindingsForDifferentExposedPorts() { Map bindings = ports.getBindings(); // two keys with one value each assertEquals(bindings.size(), 2); - assertEquals(bindings.get(TCP_80), new Binding[] { BINDING_8080 }); - assertEquals(bindings.get(TCP_90), new Binding[] { BINDING_9090 }); + assertEquals(bindings.get(TCP_80), new Binding[] {BINDING_8080}); + assertEquals(bindings.get(TCP_90), new Binding[] {BINDING_9090}); } @Test @@ -48,7 +47,7 @@ public void addTwoBindingsForSameExposedPort() { Map bindings = ports.getBindings(); // one key with two values assertEquals(bindings.size(), 1); - assertEquals(bindings.get(TCP_80), new Binding[] { BINDING_8080, BINDING_9090 }); + assertEquals(bindings.get(TCP_80), new Binding[] {BINDING_8080, BINDING_9090}); } @Test diff --git a/src/test/java/com/github/dockerjava/api/model/RepositoryTest.java b/src/test/java/com/github/dockerjava/api/model/RepositoryTest.java index 8db0273df..c78b61a85 100644 --- a/src/test/java/com/github/dockerjava/api/model/RepositoryTest.java +++ b/src/test/java/com/github/dockerjava/api/model/RepositoryTest.java @@ -15,4 +15,4 @@ public void testRepository() throws Exception { assertEquals(1234, repo1.getURL().getPort()); } -} \ No newline at end of file +} diff --git a/src/test/java/com/github/dockerjava/api/model/RestartPolicy_SerializingTest.java b/src/test/java/com/github/dockerjava/api/model/RestartPolicy_SerializingTest.java index b4a9a746a..74c97fcf6 100644 --- a/src/test/java/com/github/dockerjava/api/model/RestartPolicy_SerializingTest.java +++ b/src/test/java/com/github/dockerjava/api/model/RestartPolicy_SerializingTest.java @@ -7,8 +7,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; /** - * Compares serialization results of various {@link RestartPolicy}s with what Docker (as of 1.3.3) actually sends when - * executing docker run --restart xxx. + * Compares serialization results of various {@link RestartPolicy}s with what Docker (as of 1.3.3) actually sends when executing + * docker run --restart xxx. */ public class RestartPolicy_SerializingTest { private final ObjectMapper objectMapper = new ObjectMapper(); diff --git a/src/test/java/com/github/dockerjava/api/model/RestartPolicy_toStringTest.java b/src/test/java/com/github/dockerjava/api/model/RestartPolicy_toStringTest.java index a2d99ce9c..69e1e88a2 100644 --- a/src/test/java/com/github/dockerjava/api/model/RestartPolicy_toStringTest.java +++ b/src/test/java/com/github/dockerjava/api/model/RestartPolicy_toStringTest.java @@ -9,7 +9,7 @@ public class RestartPolicy_toStringTest { @DataProvider(name = "input") public Object[][] restartPolicies() { - return new Object[][] { { "no" }, { "always" }, { "on-failure" }, { "on-failure:2" } }; + return new Object[][] { {"no"}, {"always"}, {"on-failure"}, {"on-failure:2"}}; } @Test(dataProvider = "input") diff --git a/src/test/java/com/github/dockerjava/api/model/VolumeBindsTest.java b/src/test/java/com/github/dockerjava/api/model/VolumeBindsTest.java index 7a22d6587..7d35c25a3 100644 --- a/src/test/java/com/github/dockerjava/api/model/VolumeBindsTest.java +++ b/src/test/java/com/github/dockerjava/api/model/VolumeBindsTest.java @@ -28,4 +28,4 @@ public void t1() throws IOException { objectMapper.readValue(s, VolumeBinds.class); } -} \ No newline at end of file +} diff --git a/src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java b/src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java index 074c19ad9..bc36acb33 100644 --- a/src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java +++ b/src/test/java/com/github/dockerjava/client/AbstractDockerClientTest.java @@ -229,7 +229,7 @@ public static class LogContainerTestCallback extends LogContainerResultCallback public void onNext(Frame frame) { log.append(new String(frame.getPayload())); System.err.println("LogContainerTestCallback: " + log.toString()); - //super.onNext(frame); + // super.onNext(frame); } @Override diff --git a/src/test/java/com/github/dockerjava/client/DockerClientTest.java b/src/test/java/com/github/dockerjava/client/DockerClientTest.java index 8a7d6f6a4..72a09f0e5 100644 --- a/src/test/java/com/github/dockerjava/client/DockerClientTest.java +++ b/src/test/java/com/github/dockerjava/client/DockerClientTest.java @@ -50,11 +50,11 @@ public void afterMethod(ITestResult result) { @Test public void testRunShlex() throws DockerException { - String[] commands = new String[] { "true", + String[] commands = new String[] {"true", "echo \"The Young Descendant of Tepes & Septette for the Dead Princess\"", "echo -n 'The Young Descendant of Tepes & Septette for the Dead Princess'", "/bin/sh -c echo Hello World", "/bin/sh -c echo 'Hello World'", "echo 'Night of Nights'", - "true && echo 'Night of Nights'" }; + "true && echo 'Night of Nights'"}; for (String command : commands) { LOG.info("Running command: [{}]", command); diff --git a/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java b/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java index c5a1e841c..34995ab1a 100644 --- a/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java +++ b/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java @@ -33,4 +33,4 @@ public void defaultInstanceAuthConfig() throws Exception { // then we do not get an exception } -} \ No newline at end of file +} diff --git a/src/test/java/com/github/dockerjava/core/GoLangFileMatchTest.java b/src/test/java/com/github/dockerjava/core/GoLangFileMatchTest.java index 342c740ed..0fd870194 100644 --- a/src/test/java/com/github/dockerjava/core/GoLangFileMatchTest.java +++ b/src/test/java/com/github/dockerjava/core/GoLangFileMatchTest.java @@ -41,60 +41,60 @@ public void testMatch(MatchTestCase testCase) throws IOException { @DataProvider public Object[][] getTestData() { - return new Object[][] { new Object[] { new MatchTestCase("abc", "abc", true, false) }, - new Object[] { new MatchTestCase("*", "abc", true, false) }, - new Object[] { new MatchTestCase("*c", "abc", true, false) }, - new Object[] { new MatchTestCase("a*", "a", true, false) }, - new Object[] { new MatchTestCase("a*", "abc", true, false) }, - new Object[] { new MatchTestCase("a*", "ab/c", false, false) }, - new Object[] { new MatchTestCase("a*/b", "abc/b", true, false) }, - new Object[] { new MatchTestCase("a*/b", "a/c/b", false, false) }, - new Object[] { new MatchTestCase("a*b*c*d*e*/f", "axbxcxdxe/f", true, false) }, - new Object[] { new MatchTestCase("a*b*c*d*e*/f", "axbxcxdxexxx/f", true, false) }, - new Object[] { new MatchTestCase("a*b*c*d*e*/f", "axbxcxdxe/xxx/f", false, false) }, - new Object[] { new MatchTestCase("a*b*c*d*e*/f", "axbxcxdxexxx/fff", false, false) }, - new Object[] { new MatchTestCase("a*b?c*x", "abxbbxdbxebxczzx", true, false) }, - new Object[] { new MatchTestCase("a*b?c*x", "abxbbxdbxebxczzy", false, false) }, - new Object[] { new MatchTestCase("ab[c]", "abc", true, false) }, - new Object[] { new MatchTestCase("ab[b-d]", "abc", true, false) }, - new Object[] { new MatchTestCase("ab[e-g]", "abc", false, false) }, - new Object[] { new MatchTestCase("ab[^c]", "abc", false, false) }, - new Object[] { new MatchTestCase("ab[^b-d]", "abc", false, false) }, - new Object[] { new MatchTestCase("ab[^e-g]", "abc", true, false) }, - new Object[] { new MatchTestCase("a\\*b", "a*b", true, false) }, - new Object[] { new MatchTestCase("a\\*b", "ab", false, false) }, - new Object[] { new MatchTestCase("a?b", "a☺b", true, false) }, - new Object[] { new MatchTestCase("a[^a]b", "a☺b", true, false) }, - new Object[] { new MatchTestCase("a???b", "a☺b", false, false) }, - new Object[] { new MatchTestCase("a[^a][^a][^a]b", "a☺b", false, false) }, - new Object[] { new MatchTestCase("[a-ζ]*", "α", true, false) }, - new Object[] { new MatchTestCase("*[a-ζ]", "A", false, false) }, - new Object[] { new MatchTestCase("a?b", "a/b", false, false) }, - new Object[] { new MatchTestCase("a*b", "a/b", false, false) }, - new Object[] { new MatchTestCase("[\\]a]", "]", true, false) }, - new Object[] { new MatchTestCase("[\\-]", "-", true, false) }, - new Object[] { new MatchTestCase("[x\\-]", "x", true, false) }, - new Object[] { new MatchTestCase("[x\\-]", "-", true, false) }, - new Object[] { new MatchTestCase("[x\\-]", "z", false, false) }, - new Object[] { new MatchTestCase("[\\-x]", "x", true, false) }, - new Object[] { new MatchTestCase("[\\-x]", "-", true, false) }, - new Object[] { new MatchTestCase("[\\-x]", "a", false, false) }, - new Object[] { new MatchTestCase("[]a]", "]", false, true) }, - new Object[] { new MatchTestCase("[-]", "-", false, true) }, - new Object[] { new MatchTestCase("[x-]", "x", false, true) }, - new Object[] { new MatchTestCase("[x-]", "-", false, true) }, - new Object[] { new MatchTestCase("[x-]", "z", false, true) }, - new Object[] { new MatchTestCase("[-x]", "x", false, true) }, - new Object[] { new MatchTestCase("[-x]", "-", false, true) }, - new Object[] { new MatchTestCase("[-x]", "a", false, true) }, - new Object[] { new MatchTestCase("\\", "a", false, true) }, - new Object[] { new MatchTestCase("[a-b-c]", "a", false, true) }, - new Object[] { new MatchTestCase("[", "a", false, true) }, - new Object[] { new MatchTestCase("[^", "a", false, true) }, - new Object[] { new MatchTestCase("[^bc", "a", false, true) }, - new Object[] { new MatchTestCase("a[", "a", false, false) }, - new Object[] { new MatchTestCase("a[", "ab", false, true) }, - new Object[] { new MatchTestCase("*x", "xxx", true, false) } }; + return new Object[][] {new Object[] {new MatchTestCase("abc", "abc", true, false)}, + new Object[] {new MatchTestCase("*", "abc", true, false)}, + new Object[] {new MatchTestCase("*c", "abc", true, false)}, + new Object[] {new MatchTestCase("a*", "a", true, false)}, + new Object[] {new MatchTestCase("a*", "abc", true, false)}, + new Object[] {new MatchTestCase("a*", "ab/c", false, false)}, + new Object[] {new MatchTestCase("a*/b", "abc/b", true, false)}, + new Object[] {new MatchTestCase("a*/b", "a/c/b", false, false)}, + new Object[] {new MatchTestCase("a*b*c*d*e*/f", "axbxcxdxe/f", true, false)}, + new Object[] {new MatchTestCase("a*b*c*d*e*/f", "axbxcxdxexxx/f", true, false)}, + new Object[] {new MatchTestCase("a*b*c*d*e*/f", "axbxcxdxe/xxx/f", false, false)}, + new Object[] {new MatchTestCase("a*b*c*d*e*/f", "axbxcxdxexxx/fff", false, false)}, + new Object[] {new MatchTestCase("a*b?c*x", "abxbbxdbxebxczzx", true, false)}, + new Object[] {new MatchTestCase("a*b?c*x", "abxbbxdbxebxczzy", false, false)}, + new Object[] {new MatchTestCase("ab[c]", "abc", true, false)}, + new Object[] {new MatchTestCase("ab[b-d]", "abc", true, false)}, + new Object[] {new MatchTestCase("ab[e-g]", "abc", false, false)}, + new Object[] {new MatchTestCase("ab[^c]", "abc", false, false)}, + new Object[] {new MatchTestCase("ab[^b-d]", "abc", false, false)}, + new Object[] {new MatchTestCase("ab[^e-g]", "abc", true, false)}, + new Object[] {new MatchTestCase("a\\*b", "a*b", true, false)}, + new Object[] {new MatchTestCase("a\\*b", "ab", false, false)}, + new Object[] {new MatchTestCase("a?b", "a☺b", true, false)}, + new Object[] {new MatchTestCase("a[^a]b", "a☺b", true, false)}, + new Object[] {new MatchTestCase("a???b", "a☺b", false, false)}, + new Object[] {new MatchTestCase("a[^a][^a][^a]b", "a☺b", false, false)}, + new Object[] {new MatchTestCase("[a-ζ]*", "α", true, false)}, + new Object[] {new MatchTestCase("*[a-ζ]", "A", false, false)}, + new Object[] {new MatchTestCase("a?b", "a/b", false, false)}, + new Object[] {new MatchTestCase("a*b", "a/b", false, false)}, + new Object[] {new MatchTestCase("[\\]a]", "]", true, false)}, + new Object[] {new MatchTestCase("[\\-]", "-", true, false)}, + new Object[] {new MatchTestCase("[x\\-]", "x", true, false)}, + new Object[] {new MatchTestCase("[x\\-]", "-", true, false)}, + new Object[] {new MatchTestCase("[x\\-]", "z", false, false)}, + new Object[] {new MatchTestCase("[\\-x]", "x", true, false)}, + new Object[] {new MatchTestCase("[\\-x]", "-", true, false)}, + new Object[] {new MatchTestCase("[\\-x]", "a", false, false)}, + new Object[] {new MatchTestCase("[]a]", "]", false, true)}, + new Object[] {new MatchTestCase("[-]", "-", false, true)}, + new Object[] {new MatchTestCase("[x-]", "x", false, true)}, + new Object[] {new MatchTestCase("[x-]", "-", false, true)}, + new Object[] {new MatchTestCase("[x-]", "z", false, true)}, + new Object[] {new MatchTestCase("[-x]", "x", false, true)}, + new Object[] {new MatchTestCase("[-x]", "-", false, true)}, + new Object[] {new MatchTestCase("[-x]", "a", false, true)}, + new Object[] {new MatchTestCase("\\", "a", false, true)}, + new Object[] {new MatchTestCase("[a-b-c]", "a", false, true)}, + new Object[] {new MatchTestCase("[", "a", false, true)}, + new Object[] {new MatchTestCase("[^", "a", false, true)}, + new Object[] {new MatchTestCase("[^bc", "a", false, true)}, + new Object[] {new MatchTestCase("a[", "a", false, false)}, + new Object[] {new MatchTestCase("a[", "ab", false, true)}, + new Object[] {new MatchTestCase("*x", "xxx", true, false)}}; } private final class MatchTestCase { diff --git a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java index 50860789b..3ac8828e8 100644 --- a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java +++ b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java @@ -11,8 +11,8 @@ 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. + * Special {@link DockerCmdExecFactory} implementation that collects container and image creations while test execution for the purpose of + * automatically cleanup. * * @author Marcus Linke */ 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 9266c5ccd..775b12b16 100644 --- a/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/BuildImageCmdImplTest.java @@ -174,7 +174,7 @@ private String execBuild(BuildImageCmd buildImageCmd) throws Exception { return containerLog(container.getId()); } - @Test(expectedExceptions = { DockerClientException.class }) + @Test(expectedExceptions = {DockerClientException.class}) public void testDockerfileIgnored() throws Exception { File baseDir = new File(Thread.currentThread().getContextClassLoader().getResource("testDockerfileIgnored") .getFile()); @@ -190,7 +190,7 @@ public void testDockerfileNotIgnored() throws Exception { dockerClient.buildImageCmd(baseDir).withNoCache(true).exec(new BuildImageResultCallback()).awaitImageId(); } - @Test(expectedExceptions = { DockerClientException.class }) + @Test(expectedExceptions = {DockerClientException.class}) public void testInvalidDockerIgnorePattern() throws Exception { File baseDir = new File(Thread.currentThread().getContextClassLoader() .getResource("testInvalidDockerignorePattern").getFile()); @@ -309,7 +309,8 @@ public void testBuildFromPrivateRegistry() throws Exception { public void testBuildArgs() throws Exception { File baseDir = new File(Thread.currentThread().getContextClassLoader().getResource("testBuildArgs").getFile()); - String imageId = dockerClient.buildImageCmd(baseDir).withNoCache(true).withBuildArg("testArg", "abc").exec(new BuildImageResultCallback()) + String imageId = dockerClient.buildImageCmd(baseDir).withNoCache(true).withBuildArg("testArg", "abc") + .exec(new BuildImageResultCallback()) .awaitImageId(); InspectImageResponse inspectImageResponse = dockerClient.inspectImageCmd(imageId).exec(); 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 3f989c114..dba1a1a34 100644 --- a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java @@ -266,8 +266,8 @@ public void createContainerWithLink() throws DockerException { InspectContainerResponse inspectContainerResponse2 = dockerClient.inspectContainerCmd(container2.getId()) .exec(); - assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] { new Link("container1", - "container1Link") })); + assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] {new Link("container1", + "container1Link")})); } @Test @@ -325,7 +325,7 @@ public void createContainerWithEntrypoint() throws DockerException { @Test public void createContainerWithExtraHosts() throws DockerException { - String[] extraHosts = { "dockerhost:127.0.0.1", "otherhost:10.0.0.1" }; + String[] extraHosts = {"dockerhost:127.0.0.1", "otherhost:10.0.0.1"}; CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withName("container") .withExtraHosts(extraHosts).exec(); @@ -430,8 +430,8 @@ public void createContainerWithLinking() throws DockerException { assertThat(inspectContainerResponse2.getId(), not(isEmptyString())); assertThat(inspectContainerResponse2.getHostConfig(), is(notNullValue())); assertThat(inspectContainerResponse2.getHostConfig().getLinks(), is(notNullValue())); - assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] { new Link("container1", - "container1Link") })); + assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] {new Link("container1", + "container1Link")})); assertThat(inspectContainerResponse2.getId(), startsWith(container2.getId())); assertThat(inspectContainerResponse2.getName(), equalTo("/container2")); assertThat(inspectContainerResponse2.getImageId(), not(isEmptyString())); @@ -471,11 +471,10 @@ public void createContainerWithPidMode() throws DockerException { } /** - * This tests support for --net option for the docker run command: --net="bridge" Set the Network mode for the - * container 'bridge': creates a new network stack for the container on the docker bridge 'none': no networking for - * this container 'container:': reuses another container network stack 'host': use the host network stack inside the - * container. Note: the host mode gives the container full access to local system services such as D-bus and is - * therefore considered insecure. + * This tests support for --net option for the docker run command: --net="bridge" Set the Network mode for the container 'bridge': + * creates a new network stack for the container on the docker bridge 'none': no networking for this container 'container:': reuses + * another container network stack 'host': use the host network stack inside the container. Note: the host mode gives the container full + * access to local system services such as D-bus and is therefore considered insecure. */ @Test public void createContainerWithNetworkMode() throws DockerException { @@ -510,7 +509,7 @@ public void createContainerWithMacAddress() throws DockerException { @Test(groups = "ignoreInCircleCi") public void createContainerWithULimits() throws DockerException { - Ulimit[] ulimits = { new Ulimit("nproc", 709, 1026), new Ulimit("nofile", 1024, 4096) }; + Ulimit[] ulimits = {new Ulimit("nproc", 709, 1026), new Ulimit("nofile", 1024, 4096)}; CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withName("container") .withUlimits(ulimits).exec(); diff --git a/src/test/java/com/github/dockerjava/core/command/FrameReaderTest.java b/src/test/java/com/github/dockerjava/core/command/FrameReaderTest.java index 1d21b8e95..38ddf1402 100644 --- a/src/test/java/com/github/dockerjava/core/command/FrameReaderTest.java +++ b/src/test/java/com/github/dockerjava/core/command/FrameReaderTest.java @@ -58,4 +58,4 @@ private void setBytes(int... bytes) { this.bytes.add(aByte); } } -} \ No newline at end of file +} 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 ce060f4bb..0bc2c9b1a 100644 --- a/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/StartContainerCmdImplTest.java @@ -316,8 +316,8 @@ public void startContainerWithLinkingDeprecated() throws DockerException { assertThat(inspectContainerResponse2.getId(), not(isEmptyString())); assertThat(inspectContainerResponse2.getHostConfig(), is(notNullValue())); assertThat(inspectContainerResponse2.getHostConfig().getLinks(), is(notNullValue())); - assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] { new Link("container1", - "container1Link") })); + assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] {new Link("container1", + "container1Link")})); assertThat(inspectContainerResponse2.getId(), startsWith(container2.getId())); assertThat(inspectContainerResponse2.getName(), equalTo("/container2")); assertThat(inspectContainerResponse2.getImageId(), not(isEmptyString())); @@ -369,8 +369,8 @@ public void startContainerWithLinking() throws DockerException { assertThat(inspectContainerResponse2.getId(), not(isEmptyString())); assertThat(inspectContainerResponse2.getHostConfig(), is(notNullValue())); assertThat(inspectContainerResponse2.getHostConfig().getLinks(), is(notNullValue())); - assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] { new Link("container1", - "container1Link") })); + assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] {new Link("container1", + "container1Link")})); assertThat(inspectContainerResponse2.getId(), startsWith(container2.getId())); assertThat(inspectContainerResponse2.getName(), equalTo("/container2")); assertThat(inspectContainerResponse2.getImageId(), not(isEmptyString())); @@ -382,7 +382,7 @@ public void startContainerWithLinking() throws DockerException { @Test public void startContainer() throws DockerException { - CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd(new String[] { "top" }) + CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd(new String[] {"top"}) .exec(); LOG.info("Created container {}", container.toString()); @@ -418,11 +418,10 @@ public void testStartNonExistingContainer() throws DockerException { } /** - * This tests support for --net option for the docker run command: --net="bridge" Set the Network mode for the - * container 'bridge': creates a new network stack for the container on the docker bridge 'none': no networking for - * this container 'container:': reuses another container network stack 'host': use the host network stack inside the - * container. Note: the host mode gives the container full access to local system services such as D-bus and is - * therefore considered insecure. + * This tests support for --net option for the docker run command: --net="bridge" Set the Network mode for the container 'bridge': + * creates a new network stack for the container on the docker bridge 'none': no networking for this container 'container:': reuses + * another container network stack 'host': use the host network stack inside the container. Note: the host mode gives the container full + * access to local system services such as D-bus and is therefore considered insecure. */ @Test public void startContainerWithNetworkMode() throws DockerException { diff --git a/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileStatementAddTest.java b/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileStatementAddTest.java index b121900b4..47d570d8c 100644 --- a/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileStatementAddTest.java +++ b/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileStatementAddTest.java @@ -20,14 +20,14 @@ public class DockerfileStatementAddTest extends TestCase { @DataProvider(name = "valid scenarios") public Object[][] validScenarios() { - return new Object[][] { { "ADD src dest", contains("src"), "dest" }, - { "ADD \"src file\" \"dest\"", contains("src file"), "dest" }, - { "ADD src\"file dest", contains("src\"file"), "dest" }, - { "ADD src1 src2 dest", containsInAnyOrder("src1", "src2"), "dest" }, - { "COPY src dest", contains("src"), "dest" }, - { "COPY \"src file\" \"dest\"", contains("src file"), "dest" }, - { "COPY src\"file dest", contains("src\"file"), "dest" }, - { "COPY src1 src2 dest", containsInAnyOrder("src1", "src2"), "dest" } }; + return new Object[][] { {"ADD src dest", contains("src"), "dest"}, + {"ADD \"src file\" \"dest\"", contains("src file"), "dest"}, + {"ADD src\"file dest", contains("src\"file"), "dest"}, + {"ADD src1 src2 dest", containsInAnyOrder("src1", "src2"), "dest"}, + {"COPY src dest", contains("src"), "dest"}, + {"COPY \"src file\" \"dest\"", contains("src file"), "dest"}, + {"COPY src\"file dest", contains("src\"file"), "dest"}, + {"COPY src1 src2 dest", containsInAnyOrder("src1", "src2"), "dest"}}; } @Test(dataProvider = "valid scenarios") @@ -38,7 +38,7 @@ public void testAddOrCopyPattern(String command, Matcher matchesExpectation, Str assertThat(optionalAdd.get().destination, is(expectedDest)); } - @Test(expectedExceptions = { DockerClientException.class }) + @Test(expectedExceptions = {DockerClientException.class}) public void shouldThrowExceptionIfDestNotSpecified() { DockerfileStatement.Add.create("ADD src"); } diff --git a/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileTest.java b/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileTest.java index c69529d02..ba96ad2eb 100644 --- a/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileTest.java +++ b/src/test/java/com/github/dockerjava/core/dockerfile/DockerfileTest.java @@ -46,4 +46,4 @@ public void testAllItems() throws IOException { } } -} \ No newline at end of file +} 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 125fd0785..25027ae76 100644 --- a/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java +++ b/src/test/java/com/github/dockerjava/core/util/FiltersBuilderTest.java @@ -1,7 +1,6 @@ package com.github.dockerjava.core.util; -import com.github.dockerjava.core.util. -FiltersBuilder; +import com.github.dockerjava.core.util.FiltersBuilder; import com.google.common.collect.Maps; import org.testng.annotations.Test; 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 e4aa05250..fad4ef7b1 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/BuildImageCmdExecTest.java @@ -166,7 +166,7 @@ private String execBuild(BuildImageCmd buildImageCmd) throws Exception { return containerLog(container.getId()); } - @Test(expectedExceptions = { DockerClientException.class }) + @Test(expectedExceptions = {DockerClientException.class}) public void testDockerfileIgnored() throws Exception { File baseDir = new File(Thread.currentThread().getContextClassLoader().getResource("testDockerfileIgnored") .getFile()); @@ -182,7 +182,7 @@ public void testDockerfileNotIgnored() throws Exception { dockerClient.buildImageCmd(baseDir).withNoCache(true).exec(new BuildImageResultCallback()).awaitImageId(); } - @Test(expectedExceptions = { DockerClientException.class }) + @Test(expectedExceptions = {DockerClientException.class}) public void testInvalidDockerIgnorePattern() throws Exception { File baseDir = new File(Thread.currentThread().getContextClassLoader() .getResource("testInvalidDockerignorePattern").getFile()); @@ -301,7 +301,8 @@ public void testBuildFromPrivateRegistry() throws Exception { public void testBuildArgs() throws Exception { File baseDir = new File(Thread.currentThread().getContextClassLoader().getResource("testBuildArgs").getFile()); - String imageId = dockerClient.buildImageCmd(baseDir).withNoCache(true).withBuildArg("testArg", "abc").exec(new BuildImageResultCallback()) + String imageId = dockerClient.buildImageCmd(baseDir).withNoCache(true).withBuildArg("testArg", "abc") + .exec(new BuildImageResultCallback()) .awaitImageId(); InspectImageResponse inspectImageResponse = dockerClient.inspectImageCmd(imageId).exec(); 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 a29b26d7b..9a6d4b354 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/CreateContainerCmdExecTest.java @@ -259,8 +259,8 @@ public void createContainerWithLink() throws DockerException { InspectContainerResponse inspectContainerResponse2 = dockerClient.inspectContainerCmd(container2.getId()) .exec(); - assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] { new Link("container1", - "container1Link") })); + assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] {new Link("container1", + "container1Link")})); } @Test @@ -318,7 +318,7 @@ public void createContainerWithEntrypoint() throws DockerException { @Test public void createContainerWithExtraHosts() throws DockerException { - String[] extraHosts = { "dockerhost:127.0.0.1", "otherhost:10.0.0.1" }; + String[] extraHosts = {"dockerhost:127.0.0.1", "otherhost:10.0.0.1"}; CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withName("container") .withExtraHosts(extraHosts).exec(); @@ -423,8 +423,8 @@ public void createContainerWithLinking() throws DockerException { assertThat(inspectContainerResponse2.getId(), not(isEmptyString())); assertThat(inspectContainerResponse2.getHostConfig(), is(notNullValue())); assertThat(inspectContainerResponse2.getHostConfig().getLinks(), is(notNullValue())); - assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] { new Link("container1", - "container1Link") })); + assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] {new Link("container1", + "container1Link")})); assertThat(inspectContainerResponse2.getId(), startsWith(container2.getId())); assertThat(inspectContainerResponse2.getName(), equalTo("/container2")); assertThat(inspectContainerResponse2.getImageId(), not(isEmptyString())); @@ -464,11 +464,10 @@ public void createContainerWithPidMode() throws DockerException { } /** - * This tests support for --net option for the docker run command: --net="bridge" Set the Network mode for the - * container 'bridge': creates a new network stack for the container on the docker bridge 'none': no networking for - * this container 'container:': reuses another container network stack 'host': use the host network stack inside the - * container. Note: the host mode gives the container full access to local system services such as D-bus and is - * therefore considered insecure. + * This tests support for --net option for the docker run command: --net="bridge" Set the Network mode for the container 'bridge': + * creates a new network stack for the container on the docker bridge 'none': no networking for this container 'container:': reuses + * another container network stack 'host': use the host network stack inside the container. Note: the host mode gives the container full + * access to local system services such as D-bus and is therefore considered insecure. */ @Test public void createContainerWithNetworkMode() throws DockerException { @@ -503,7 +502,7 @@ public void createContainerWithMacAddress() throws DockerException { @Test(groups = "ignoreInCircleCi") public void createContainerWithULimits() throws DockerException { - Ulimit[] ulimits = { new Ulimit("nproc", 709, 1026), new Ulimit("nofile", 1024, 4096) }; + Ulimit[] ulimits = {new Ulimit("nproc", 709, 1026), new Ulimit("nofile", 1024, 4096)}; CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withName("container") .withUlimits(ulimits).exec(); 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 8af196a60..02b7cd51b 100644 --- a/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java +++ b/src/test/java/com/github/dockerjava/netty/exec/StartContainerCmdExecTest.java @@ -317,8 +317,8 @@ public void startContainerWithLinkingDeprecated() throws DockerException { assertThat(inspectContainerResponse2.getId(), not(isEmptyString())); assertThat(inspectContainerResponse2.getHostConfig(), is(notNullValue())); assertThat(inspectContainerResponse2.getHostConfig().getLinks(), is(notNullValue())); - assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] { new Link("container1", - "container1Link") })); + assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] {new Link("container1", + "container1Link")})); assertThat(inspectContainerResponse2.getId(), startsWith(container2.getId())); assertThat(inspectContainerResponse2.getName(), equalTo("/container2")); assertThat(inspectContainerResponse2.getImageId(), not(isEmptyString())); @@ -370,8 +370,8 @@ public void startContainerWithLinking() throws DockerException { assertThat(inspectContainerResponse2.getId(), not(isEmptyString())); assertThat(inspectContainerResponse2.getHostConfig(), is(notNullValue())); assertThat(inspectContainerResponse2.getHostConfig().getLinks(), is(notNullValue())); - assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] { new Link("container1", - "container1Link") })); + assertThat(inspectContainerResponse2.getHostConfig().getLinks(), equalTo(new Link[] {new Link("container1", + "container1Link")})); assertThat(inspectContainerResponse2.getId(), startsWith(container2.getId())); assertThat(inspectContainerResponse2.getName(), equalTo("/container2")); assertThat(inspectContainerResponse2.getImageId(), not(isEmptyString())); @@ -383,7 +383,7 @@ public void startContainerWithLinking() throws DockerException { @Test public void startContainer() throws DockerException { - CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd(new String[] { "top" }) + CreateContainerResponse container = dockerClient.createContainerCmd("busybox").withCmd(new String[] {"top"}) .exec(); LOG.info("Created container {}", container.toString()); @@ -419,11 +419,10 @@ public void testStartNonExistingContainer() throws DockerException { } /** - * This tests support for --net option for the docker run command: --net="bridge" Set the Network mode for the - * container 'bridge': creates a new network stack for the container on the docker bridge 'none': no networking for - * this container 'container:': reuses another container network stack 'host': use the host network stack inside the - * container. Note: the host mode gives the container full access to local system services such as D-bus and is - * therefore considered insecure. + * This tests support for --net option for the docker run command: --net="bridge" Set the Network mode for the container 'bridge': + * creates a new network stack for the container on the docker bridge 'none': no networking for this container 'container:': reuses + * another container network stack 'host': use the host network stack inside the container. Note: the host mode gives the container full + * access to local system services such as D-bus and is therefore considered insecure. */ @Test public void startContainerWithNetworkMode() throws DockerException { From fbef1cd41ed5e3b3202d82f88117d907e54fea85 Mon Sep 17 00:00:00 2001 From: Christopher Dancy Date: Sat, 6 Feb 2016 16:20:57 -0500 Subject: [PATCH 015/878] Return null, instead of NullPointerException, should no exposedPorts be found --- .../java/com/github/dockerjava/api/model/ContainerConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/github/dockerjava/api/model/ContainerConfig.java b/src/main/java/com/github/dockerjava/api/model/ContainerConfig.java index efc5e0248..d7f4b81ee 100644 --- a/src/main/java/com/github/dockerjava/api/model/ContainerConfig.java +++ b/src/main/java/com/github/dockerjava/api/model/ContainerConfig.java @@ -84,7 +84,7 @@ public class ContainerConfig { @JsonIgnore public ExposedPort[] getExposedPorts() { - return exposedPorts.getExposedPorts(); + return exposedPorts != null ? exposedPorts.getExposedPorts() : null; } public Boolean isNetworkDisabled() { From 835c78c250c6f59a838e5e947ea1971961c644c9 Mon Sep 17 00:00:00 2001 From: Christopher Dancy Date: Sat, 6 Feb 2016 16:49:28 -0500 Subject: [PATCH 016/878] Expose netty deps as a version and bump to latest 4.1.0.CR2 --- pom.xml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 43a73c889..60e8fcad5 100644 --- a/pom.xml +++ b/pom.xml @@ -64,6 +64,7 @@ 1.1.0 6.1.1 + 4.1.0.CR2 1.3 1.6 2.3.3 @@ -206,22 +207,22 @@ io.netty netty-codec-http - 4.1.0.Beta7 + ${netty.version} io.netty netty-handler - 4.1.0.Beta7 + ${netty.version} io.netty netty-handler-proxy - 4.1.0.Beta7 + ${netty.version} io.netty netty-transport-native-epoll - 4.1.0.Beta7 + ${netty.version} linux-x86_64 From 3a1527714910ff8e65edb745aac4f6d44aa83f9c Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Sun, 7 Feb 2016 19:43:44 +0100 Subject: [PATCH 017/878] Add withDockerTlsVerify(Boolean dockerTlsVerify) --- .../dockerjava/core/DockerClientConfig.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java index 400f417ea..12d09664c 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java @@ -27,8 +27,7 @@ import com.github.dockerjava.core.NameParser.ReposTag; /** - * Respects some of the docker CLI options. See - * https://docs.docker.com/engine/reference/commandline/cli/#environment-variables + * Respects some of the docker CLI options. See https://docs.docker.com/engine/reference/commandline/cli/#environment-variables */ public class DockerClientConfig implements Serializable { @@ -114,7 +113,7 @@ private String checkDockerCertPath(boolean dockerTlsVerify, String dockerCertPat "Certificate path (DOCKER_CERT_PATH) '" + dockerCertPath + "' doesn't exist."); } - if(certPath.isDirectory()) { + if (certPath.isDirectory()) { return dockerCertPath; } else { throw new DockerClientException( @@ -361,9 +360,9 @@ public static class DockerClientConfigBuilder { private boolean dockerTlsVerify; /** - * This will set all fields in the builder to those contained in the Properties object. The Properties object - * should contain the following docker-java configuration keys: DOCKER_HOST, DOCKER_TLS_VERIFY, api.version, - * registry.username, registry.password, registry.email, DOCKER_CERT_PATH, and DOCKER_CONFIG. + * This will set all fields in the builder to those contained in the Properties object. The Properties object should contain the + * following docker-java configuration keys: DOCKER_HOST, DOCKER_TLS_VERIFY, api.version, registry.username, registry.password, + * registry.email, DOCKER_CERT_PATH, and DOCKER_CONFIG. */ public DockerClientConfigBuilder withProperties(Properties p) { return withDockerHost(p.getProperty(DOCKER_HOST)).withDockerTlsVerify(p.getProperty(DOCKER_TLS_VERIFY)) @@ -418,7 +417,13 @@ public final DockerClientConfigBuilder withDockerConfig(String dockerConfig) { } public final DockerClientConfigBuilder withDockerTlsVerify(String dockerTlsVerify) { - this.dockerTlsVerify = BooleanUtils.toBoolean(dockerTlsVerify.trim(), "1", "0"); + this.dockerTlsVerify = BooleanUtils.toBoolean(dockerTlsVerify.trim()) + || BooleanUtils.toBoolean(dockerTlsVerify.trim(), "1", "0"); + return this; + } + + public final DockerClientConfigBuilder withDockerTlsVerify(Boolean dockerTlsVerify) { + this.dockerTlsVerify = dockerTlsVerify; return this; } From 4bafd142f0633f3aa34c217f4fcdcbbbac7416a7 Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Sun, 7 Feb 2016 19:51:01 +0100 Subject: [PATCH 018/878] Fix README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9175135ae..0b519d0f3 100644 --- a/README.md +++ b/README.md @@ -102,7 +102,7 @@ In your application, e.g. DockerClientConfig config = DockerClientConfig.createDefaultConfigBuilder() .withDockerHost("tcp://my-docker-host.tld:2376") - .withDockerTlsVerify("1") + .withDockerTlsVerify(true) .withDockerCertPath("/home/user/.docker/certs") .withDockerConfig("/home/user/.docker") .withApiVersion("1.21") @@ -113,7 +113,7 @@ In your application, e.g. .build(); DockerClient docker = DockerClientBuilder.getInstance(config).build(); -#### Properties +#### Properties (docker-java.properties) DOCKER_HOST=tcp://localhost:2376 DOCKER_TLS_VERIFY=1 From 6e91d2606d3befd0962683830ccbe14c9c1a3002 Mon Sep 17 00:00:00 2001 From: marcuslinke Date: Sun, 7 Feb 2016 22:51:38 +0100 Subject: [PATCH 019/878] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f0141068..f33c3a30f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,10 @@ Change Log Notes * The upcoming release will contain multiple API breaking changes therefore the major version switch. It will support a subset of v.1.21 of the docker remote API. It also includes an experimental netty based implementation of `DockerCmdExecFactory` that probably will replace the current jersey/httpclient based one in a later release. +* The configuration has been changed to better match the docker CLI configuration options. The properties file was renamed from `docker.io.properties` to `docker-java.properties`. See README.md for details. All changes +* [#447] (https://github.com/docker-java/docker-java/pull/447) Refactoring of DockerClientConfig * [#430] (https://github.com/docker-java/docker-java/pull/430) Fix ExecStartCmd failure * [#426] (https://github.com/docker-java/docker-java/pull/426) Refactored filters API * [#425] (https://github.com/docker-java/docker-java/pull/425) Implement Network API From 55ad6295f523cb93ca47296a67195d498943acfb Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Sun, 7 Feb 2016 23:12:53 +0100 Subject: [PATCH 020/878] Remove code-style.epf in favor of docker-java-formatter.xml --- etc/code-style.epf | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 etc/code-style.epf diff --git a/etc/code-style.epf b/etc/code-style.epf deleted file mode 100644 index abd8a9364..000000000 --- a/etc/code-style.epf +++ /dev/null @@ -1,23 +0,0 @@ -#Mon Jun 29 09:34:24 CEST 2015 -/instance/org.eclipse.jdt.ui/org.eclipse.jdt.ui.overrideannotation=true -/instance/org.eclipse.jdt.ui/formatter_settings_version=12 -/instance/org.eclipse.jdt.ui/org.eclipse.jdt.ui.formatterprofiles.version=12 -/instance/org.eclipse.jdt.core/org.eclipse.jdt.core.codeComplete.fieldSuffixes= -/instance/org.eclipse.jdt.ui/org.eclipse.jdt.ui.text.custom_code_templates=