Skip to content

Commit 10a5907

Browse files
author
Marcus Linke
committed
Merge branch 'master' into issue-246
Conflicts: src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java src/main/java/com/github/dockerjava/api/model/HostConfig.java src/main/java/com/github/dockerjava/core/command/CreateContainerCmdImpl.java
2 parents 38d268f + 520ed0f commit 10a5907

File tree

63 files changed

+752
-469
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+752
-469
lines changed

CHANGELOG.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
Change Log
22
===
3-
43
Latest SNAPSHOT version
54
---
5+
* [#344] (https://github.com/docker-java/docker-java/pull/344) Implement equals/hashCode for Filters
6+
* [#335] (https://github.com/docker-java/docker-java/pull/335) Improve backward-compatibility support for older API versions
7+
* [#333] (https://github.com/docker-java/docker-java/pull/333) Adding support for withPidMode
8+
9+
v2.1.1
10+
---
611
* [#326] (https://github.com/docker-java/docker-java/pull/326) Add all missing fields to ResponseItem and related classes
712
* [#320] (https://github.com/docker-java/docker-java/pull/320) Support "since" field for logs command
813

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ Run build without integration tests:
6464
<dependency>
6565
<groupId>com.github.docker-java</groupId>
6666
<artifactId>docker-java</artifactId>
67-
<version>2.1.0</version>
67+
<version>2.1.1</version>
6868
</dependency>
6969

7070
### Latest SNAPSHOT version
@@ -74,7 +74,7 @@ You can find the latest SNAPSHOT version including javadoc and source files on [
7474
<dependency>
7575
<groupId>com.github.docker-java</groupId>
7676
<artifactId>docker-java</artifactId>
77-
<version>2.1.1-SNAPSHOT</version>
77+
<version>2.1.2-SNAPSHOT</version>
7878
</dependency>
7979

8080
## Documentation

pom.xml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<groupId>com.github.docker-java</groupId>
1111
<artifactId>docker-java</artifactId>
1212
<packaging>jar</packaging>
13-
<version>2.1.1-SNAPSHOT</version>
13+
<version>2.1.2-SNAPSHOT</version>
1414

1515
<name>docker-java</name>
1616
<url>https://github.com/docker-java/docker-java</url>
@@ -62,7 +62,7 @@
6262

6363
<!-- test dependencies -->
6464
<logback.version>1.1.0</logback.version>
65-
<testng.version>5.12.1</testng.version>
65+
<testng.version>6.1.1</testng.version>
6666
<hamcrest.library.version>1.3</hamcrest.library.version>
6767
<hamcrest.jpa-matchers>1.6</hamcrest.jpa-matchers>
6868
<lambdaj.version>2.3.3</lambdaj.version>
@@ -373,6 +373,25 @@
373373
<groupId>org.apache.maven.plugins</groupId>
374374
<artifactId>maven-source-plugin</artifactId>
375375
</plugin>
376+
<plugin>
377+
<groupId>org.codehaus.mojo</groupId>
378+
<artifactId>findbugs-maven-plugin</artifactId>
379+
<version>3.0.2</version>
380+
<configuration>
381+
<effort>Max</effort>
382+
<threshold>Low</threshold>
383+
<xmlOutput>true</xmlOutput>
384+
<!-- until all will be fixed -->
385+
<failOnError>false</failOnError>
386+
</configuration>
387+
<executions>
388+
<execution>
389+
<goals>
390+
<goal>check</goal>
391+
</goals>
392+
</execution>
393+
</executions>
394+
</plugin>
376395
</plugins>
377396
</build>
378397

src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import com.github.dockerjava.api.model.Volume;
2222
import com.github.dockerjava.api.model.VolumesFrom;
2323

24+
import javax.annotation.CheckForNull;
25+
2426
public interface CreateContainerCmd extends SyncDockerCmd<CreateContainerResponse> {
2527

2628
@CheckForNull
@@ -173,6 +175,9 @@ public interface CreateContainerCmd extends SyncDockerCmd<CreateContainerRespons
173175
@CheckForNull
174176
public Boolean isStdinOpen();
175177

178+
@CheckForNull
179+
public String getPidMode();
180+
176181
@CheckForNull
177182
public Boolean isTty();
178183

@@ -380,6 +385,11 @@ public interface CreateContainerCmd extends SyncDockerCmd<CreateContainerRespons
380385

381386
public CreateContainerCmd withWorkingDir(String workingDir);
382387

388+
/**
389+
* Set the PID (Process) Namespace mode for the container, 'host': use the host's PID namespace inside the container
390+
*/
391+
public CreateContainerCmd withPidMode(String pidMode);
392+
383393
/**
384394
* @throws NotFoundException
385395
* No such container

src/main/java/com/github/dockerjava/api/model/Filters.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,24 @@ private static List<String> labelsMapToList(Map<String, String> labels) {
9292
return result;
9393
}
9494

95+
@Override
96+
public boolean equals(Object o) {
97+
if (this == o)
98+
return true;
99+
if (o == null || getClass() != o.getClass())
100+
return false;
101+
102+
Filters filters1 = (Filters) o;
103+
104+
return filters.equals(filters1.filters);
105+
106+
}
107+
108+
@Override
109+
public int hashCode() {
110+
return filters.hashCode();
111+
}
112+
95113
@Override
96114
public String toString() {
97115
try {
@@ -100,4 +118,5 @@ public String toString() {
100118
throw new RuntimeException(e);
101119
}
102120
}
121+
103122
}

src/main/java/com/github/dockerjava/api/model/HostConfig.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import com.fasterxml.jackson.annotation.JsonInclude.Include;
99
import com.fasterxml.jackson.annotation.JsonProperty;
1010

11+
import javax.annotation.CheckForNull;
12+
1113
@JsonIgnoreProperties(ignoreUnknown = true)
1214
@JsonInclude(Include.NON_NULL)
1315
public class HostConfig {
@@ -93,6 +95,9 @@ public class HostConfig {
9395
@JsonProperty("VolumesFrom")
9496
private VolumesFrom[] volumesFrom;
9597

98+
@JsonProperty("PidMode")
99+
private String pidMode;
100+
96101
@JsonIgnore
97102
public Bind[] getBinds() {
98103
return (binds == null) ? new Bind[0] : binds.getBinds();
@@ -204,6 +209,11 @@ public Boolean isReadonlyRootfs() {
204209
return readonlyRootfs;
205210
}
206211

212+
@CheckForNull
213+
public String getPidMode() {
214+
return pidMode;
215+
}
216+
207217
@JsonIgnore
208218
public void setBinds(Bind... binds) {
209219
this.binds = new Binds(binds);
@@ -315,6 +325,10 @@ public void setVolumesFrom(VolumesFrom[] volumesFrom) {
315325
this.volumesFrom = volumesFrom;
316326
}
317327

328+
public void setPidMode(String pidMode) {
329+
this.pidMode = pidMode;
330+
}
331+
318332
@Override
319333
public String toString() {
320334
return ToStringBuilder.reflectionToString(this);

src/main/java/com/github/dockerjava/core/CompressArchiveUtil.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,8 @@ public static File archiveTARFiles(File base, Iterable<File> files, String archi
2525
TarArchiveEntry tarEntry = new TarArchiveEntry(file);
2626
tarEntry.setName(relativize(base, file));
2727

28-
if (!file.isDirectory()) {
29-
if (file.canExecute()) {
30-
tarEntry.setMode(tarEntry.getMode() | 0755);
31-
}
28+
if (!file.isDirectory() && file.canExecute()) {
29+
tarEntry.setMode(tarEntry.getMode() | 0755);
3230
}
3331

3432
tos.putArchiveEntry(tarEntry);

src/main/java/com/github/dockerjava/core/DockerClientConfig.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
package com.github.dockerjava.core;
22

3-
import static com.google.common.base.Preconditions.checkNotNull;
3+
import com.github.dockerjava.api.DockerClientException;
4+
import com.github.dockerjava.api.model.AuthConfig;
5+
import com.github.dockerjava.api.model.AuthConfigurations;
6+
import com.github.dockerjava.core.NameParser.HostnameReposName;
7+
import com.github.dockerjava.core.NameParser.ReposTag;
48

59
import java.io.File;
610
import java.io.FileInputStream;
711
import java.io.IOException;
12+
import java.io.InputStream;
813
import java.io.Serializable;
914
import java.net.URI;
1015
import java.util.Collections;
1116
import java.util.HashMap;
1217
import java.util.Map;
1318
import java.util.Properties;
1419

15-
import com.github.dockerjava.api.DockerClientException;
16-
import com.github.dockerjava.api.model.AuthConfig;
17-
import com.github.dockerjava.api.model.AuthConfigurations;
18-
import com.github.dockerjava.core.NameParser.HostnameReposName;
19-
import com.github.dockerjava.core.NameParser.ReposTag;
20+
import static com.google.common.base.Preconditions.checkNotNull;
2021

2122
public class DockerClientConfig implements Serializable {
2223

@@ -66,14 +67,16 @@ public class DockerClientConfig implements Serializable {
6667

6768
private URI uri;
6869

69-
private final String version, username, password, email, serverAddress, dockerCfgPath;
70+
private final String username, password, email, serverAddress, dockerCfgPath;
71+
72+
private final RemoteApiVersion version;
7073

7174
private final SSLConfig sslConfig;
7275

7376
DockerClientConfig(URI uri, String version, String username, String password, String email, String serverAddress,
7477
String dockerCfgPath, SSLConfig sslConfig) {
7578
this.uri = uri;
76-
this.version = version;
79+
this.version = RemoteApiVersion.parseConfigWithDefault(version);
7780
this.username = username;
7881
this.password = password;
7982
this.email = email;
@@ -83,9 +86,9 @@ public class DockerClientConfig implements Serializable {
8386
}
8487

8588
private static Properties loadIncludedDockerProperties(Properties systemProperties) {
86-
try {
89+
try (InputStream is = DockerClientConfig.class.getResourceAsStream("/" + DOCKER_IO_PROPERTIES_PROPERTY)) {
8790
Properties p = new Properties();
88-
p.load(DockerClientConfig.class.getResourceAsStream("/" + DOCKER_IO_PROPERTIES_PROPERTY));
91+
p.load(is);
8992
replaceProperties(p, systemProperties);
9093
return p;
9194
} catch (IOException e) {
@@ -209,7 +212,7 @@ public void setUri(URI uri) {
209212
this.uri = uri;
210213
}
211214

212-
public String getVersion() {
215+
public RemoteApiVersion getVersion() {
213216
return version;
214217
}
215218

src/main/java/com/github/dockerjava/core/DockerClientImpl.java

Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
package com.github.dockerjava.core;
22

3-
import static com.google.common.base.Preconditions.checkNotNull;
4-
5-
import java.io.Closeable;
6-
import java.io.File;
7-
import java.io.IOException;
8-
import java.io.InputStream;
9-
103
import com.github.dockerjava.api.DockerClient;
114
import com.github.dockerjava.api.command.AttachContainerCmd;
125
import com.github.dockerjava.api.command.AuthCmd;
@@ -46,7 +39,6 @@
4639
import com.github.dockerjava.api.command.VersionCmd;
4740
import com.github.dockerjava.api.command.WaitContainerCmd;
4841
import com.github.dockerjava.api.model.AuthConfig;
49-
import com.github.dockerjava.api.model.AuthConfigurations;
5042
import com.github.dockerjava.api.model.Identifier;
5143
import com.github.dockerjava.core.command.AttachContainerCmdImpl;
5244
import com.github.dockerjava.core.command.AuthCmdImpl;
@@ -85,6 +77,13 @@
8577
import com.github.dockerjava.core.command.VersionCmdImpl;
8678
import com.github.dockerjava.core.command.WaitContainerCmdImpl;
8779

80+
import java.io.Closeable;
81+
import java.io.File;
82+
import java.io.IOException;
83+
import java.io.InputStream;
84+
85+
import static com.google.common.base.Preconditions.checkNotNull;
86+
8887
/**
8988
* @author Konstantin Pelykh (kpelykh@gmail.com)
9089
*
@@ -332,28 +331,17 @@ public CommitCmd commitCmd(String containerId) {
332331

333332
@Override
334333
public BuildImageCmd buildImageCmd() {
335-
return augmentBuildImageCmd(new BuildImageCmdImpl(getDockerCmdExecFactory().createBuildImageCmdExec()));
334+
return new BuildImageCmdImpl(getDockerCmdExecFactory().createBuildImageCmdExec());
336335
}
337336

338337
@Override
339338
public BuildImageCmd buildImageCmd(File dockerFileOrFolder) {
340-
return augmentBuildImageCmd(new BuildImageCmdImpl(getDockerCmdExecFactory().createBuildImageCmdExec(),
341-
dockerFileOrFolder));
339+
return new BuildImageCmdImpl(getDockerCmdExecFactory().createBuildImageCmdExec(), dockerFileOrFolder);
342340
}
343341

344342
@Override
345343
public BuildImageCmd buildImageCmd(InputStream tarInputStream) {
346-
return augmentBuildImageCmd(new BuildImageCmdImpl(getDockerCmdExecFactory().createBuildImageCmdExec(),
347-
tarInputStream));
348-
}
349-
350-
private BuildImageCmd augmentBuildImageCmd(BuildImageCmd buildImageCmd) {
351-
final AuthConfigurations authConfigurations = dockerClientConfig.getAuthConfigurations();
352-
if (!authConfigurations.getConfigs().isEmpty()) {
353-
buildImageCmd.withBuildAuthConfigs(authConfigurations);
354-
}
355-
356-
return buildImageCmd;
344+
return new BuildImageCmdImpl(getDockerCmdExecFactory().createBuildImageCmdExec(), tarInputStream);
357345
}
358346

359347
@Override

src/main/java/com/github/dockerjava/core/GoLangFileMatch.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,8 @@ static ScanResult scanChunk(String pattern) {
113113
Scan: for (i = 0; i < pattern.length(); i++) {
114114
switch (pattern.charAt(i)) {
115115
case '\\': {
116-
if (!IS_WINDOWS) {
117-
// error check handled in matchChunk: bad pattern.
118-
if (i + 1 < pattern.length()) {
119-
i++;
120-
}
116+
if (!IS_WINDOWS && i + 1 < pattern.length()) {
117+
i++;
121118
}
122119
break;
123120
}

0 commit comments

Comments
 (0)