Skip to content

Commit e734757

Browse files
author
Marcus Linke
committed
Merge branch 'Mishail-named_daemons't push origin master
2 parents 284b26b + 4135555 commit e734757

File tree

15 files changed

+360
-34
lines changed

15 files changed

+360
-34
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ Notes
1010

1111
All changes
1212

13+
* [#542] (https://github.com/docker-java/docker-java/pull/542) Fix large volumes of output from "docker exec" trigger out of memory error
14+
* [#541] (https://github.com/docker-java/docker-java/pull/541) ImageInspectResponse.GraphDriver.Data is more complex structure
15+
* [#534] (https://github.com/docker-java/docker-java/pull/534) Fix create volume command doesn't assign passed in volume driverOpts to field
16+
* [#533] (https://github.com/docker-java/docker-java/pull/533) Added shmsize build option
17+
1318
Included in 3.0.0-RC4
1419
* [#528] (https://github.com/docker-java/docker-java/pull/528) Fix DOCKER_TLS_VERIFY cannot be 'false' or empty
1520
* [#527] (https://github.com/docker-java/docker-java/pull/527) Fix `mirrors` field is list and not a single string #527

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ public interface BuildImageCmd extends AsyncDockerCmd<BuildImageCmd, BuildRespon
9595
@CheckForNull
9696
Map<String, String> getBuildArgs();
9797

98+
/**
99+
*@since {@link RemoteApiVersion#VERSION_1_22}
100+
*/
101+
@CheckForNull
102+
Long getShmsize();
103+
98104
// setters
99105

100106
BuildImageCmd withTag(String tag);
@@ -134,6 +140,11 @@ public interface BuildImageCmd extends AsyncDockerCmd<BuildImageCmd, BuildRespon
134140

135141
BuildImageCmd withTarInputStream(@Nonnull InputStream tarInputStream);
136142

143+
/**
144+
*@since {@link RemoteApiVersion#VERSION_1_22}
145+
*/
146+
BuildImageCmd withShmsize(Long shmsize);
147+
137148
interface Exec extends DockerCmdAsyncExec<BuildImageCmd, BuildResponseItem> {
138149
}
139150

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,16 +159,16 @@ public interface CreateContainerCmd extends SyncDockerCmd<CreateContainerRespons
159159
* @since 1.19
160160
*/
161161
@CheckForNull
162-
Boolean isOomKillDisable();
162+
Boolean getOomKillDisable();
163163

164164
@CheckForNull
165-
Boolean isPrivileged();
165+
Boolean getPrivileged();
166166

167167
@CheckForNull
168-
Boolean isPublishAllPorts();
168+
Boolean getPublishAllPorts();
169169

170170
@CheckForNull
171-
Boolean isReadonlyRootfs();
171+
Boolean getReadonlyRootfs();
172172

173173
@CheckForNull
174174
Boolean isStdInOnce();
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package com.github.dockerjava.api.command;
2+
3+
import com.fasterxml.jackson.annotation.JsonProperty;
4+
import org.apache.commons.lang.builder.EqualsBuilder;
5+
import org.apache.commons.lang.builder.HashCodeBuilder;
6+
import org.apache.commons.lang.builder.ToStringBuilder;
7+
8+
import javax.annotation.CheckForNull;
9+
10+
/**
11+
* part of {@link GraphDriver}
12+
* @author Kanstantsin Shautsou
13+
*/
14+
public class GraphData {
15+
@JsonProperty("DeviceId")
16+
private String deviceId;
17+
18+
@JsonProperty("DeviceName")
19+
private String deviceName;
20+
21+
@JsonProperty("DeviceSize")
22+
private String deviceSize;
23+
24+
/**
25+
* @see #deviceId
26+
*/
27+
@CheckForNull
28+
public String getDeviceId() {
29+
return deviceId;
30+
}
31+
32+
/**
33+
* @see #deviceId
34+
*/
35+
public GraphData withDeviceId(String deviceId) {
36+
this.deviceId = deviceId;
37+
return this;
38+
}
39+
40+
/**
41+
* @see #deviceName
42+
*/
43+
@CheckForNull
44+
public String getDeviceName() {
45+
return deviceName;
46+
}
47+
48+
/**
49+
* @see #deviceName
50+
*/
51+
public GraphData withDeviceName(String deviceName) {
52+
this.deviceName = deviceName;
53+
return this;
54+
}
55+
56+
/**
57+
* @see #deviceSize
58+
*/
59+
@CheckForNull
60+
public String getDeviceSize() {
61+
return deviceSize;
62+
}
63+
64+
/**
65+
* @see #deviceSize
66+
*/
67+
public GraphData withDeviceSize(String deviceSize) {
68+
this.deviceSize = deviceSize;
69+
return this;
70+
}
71+
72+
@Override
73+
public String toString() {
74+
return ToStringBuilder.reflectionToString(this);
75+
}
76+
77+
@Override
78+
public boolean equals(Object o) {
79+
return EqualsBuilder.reflectionEquals(this, o);
80+
}
81+
82+
@Override
83+
public int hashCode() {
84+
return HashCodeBuilder.reflectionHashCode(this);
85+
}
86+
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,21 +24,21 @@ public class GraphDriver {
2424
* @since {@link com.github.dockerjava.core.RemoteApiVersion#VERSION_1_21}
2525
*/
2626
@JsonProperty("Data")
27-
private String data;
27+
private GraphData data;
2828

2929

3030
/**
3131
* @see #data
3232
*/
3333
@CheckForNull
34-
public String getData() {
34+
public GraphData getData() {
3535
return data;
3636
}
3737

3838
/**
3939
* @see #data
4040
*/
41-
public GraphDriver withData(String data) {
41+
public GraphDriver withData(GraphData data) {
4242
this.data = data;
4343
return this;
4444
}

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

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -285,22 +285,6 @@ public VolumesFrom[] getVolumesFrom() {
285285
return volumesFrom;
286286
}
287287

288-
public Boolean isOomKillDisable() {
289-
return oomKillDisable;
290-
}
291-
292-
public Boolean isPrivileged() {
293-
return privileged;
294-
}
295-
296-
public Boolean isPublishAllPorts() {
297-
return publishAllPorts;
298-
}
299-
300-
public Boolean isReadonlyRootfs() {
301-
return readonlyRootfs;
302-
}
303-
304288
@CheckForNull
305289
public String getPidMode() {
306290
return pidMode;
@@ -701,6 +685,14 @@ public HostConfig withPortBindings(Ports portBindings) {
701685
return this;
702686
}
703687

688+
/**
689+
* @see #privileged
690+
*/
691+
@CheckForNull
692+
public Boolean getPrivileged() {
693+
return privileged;
694+
}
695+
704696
/**
705697
* @see #privileged
706698
*/
@@ -709,6 +701,14 @@ public HostConfig withPrivileged(Boolean privileged) {
709701
return this;
710702
}
711703

704+
/**
705+
* @see #publishAllPorts
706+
*/
707+
@CheckForNull
708+
public Boolean getPublishAllPorts() {
709+
return publishAllPorts;
710+
}
711+
712712
/**
713713
* @see #publishAllPorts
714714
*/
@@ -717,6 +717,14 @@ public HostConfig withPublishAllPorts(Boolean publishAllPorts) {
717717
return this;
718718
}
719719

720+
/**
721+
* @see #readonlyRootfs
722+
*/
723+
@CheckForNull
724+
public Boolean getReadonlyRootfs() {
725+
return readonlyRootfs;
726+
}
727+
720728
/**
721729
* @see #readonlyRootfs
722730
*/

src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public class BuildImageCmdImpl extends AbstrAsyncDockerCmd<BuildImageCmd, BuildR
5050

5151
private Long memswap;
5252

53+
private Long shmsize;
54+
5355
private URI remote;
5456

5557
private Map<String, String> buildArgs;
@@ -159,6 +161,14 @@ public InputStream getTarInputStream() {
159161
return tarInputStream;
160162
}
161163

164+
/**
165+
* @see #shmsize
166+
*/
167+
@Override
168+
public Long getShmsize() {
169+
return shmsize;
170+
}
171+
162172
// setters
163173

164174
@Override
@@ -284,6 +294,15 @@ public BuildImageCmd withBuildAuthConfigs(AuthConfigurations authConfigs) {
284294
return this;
285295
}
286296

297+
/**
298+
* @see #shmsize
299+
*/
300+
@Override
301+
public BuildImageCmd withShmsize(Long shmsize) {
302+
this.shmsize = shmsize;
303+
return this;
304+
}
305+
287306
@Override
288307
public void close() {
289308
super.close();
@@ -294,4 +313,5 @@ public void close() {
294313
throw new RuntimeException(e);
295314
}
296315
}
316+
297317
}

src/main/java/com/github/dockerjava/core/command/CreateContainerCmdImpl.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -366,26 +366,26 @@ public Boolean isNetworkDisabled() {
366366

367367
@Override
368368
@JsonIgnore
369-
public Boolean isOomKillDisable() {
370-
return hostConfig.isOomKillDisable();
369+
public Boolean getOomKillDisable() {
370+
return hostConfig.getOomKillDisable();
371371
}
372372

373373
@Override
374374
@JsonIgnore
375-
public Boolean isPrivileged() {
376-
return hostConfig.isPrivileged();
375+
public Boolean getPrivileged() {
376+
return hostConfig.getPrivileged();
377377
}
378378

379379
@Override
380380
@JsonIgnore
381-
public Boolean isPublishAllPorts() {
382-
return hostConfig.isPublishAllPorts();
381+
public Boolean getPublishAllPorts() {
382+
return hostConfig.getPublishAllPorts();
383383
}
384384

385385
@Override
386386
@JsonIgnore
387-
public Boolean isReadonlyRootfs() {
388-
return hostConfig.isReadonlyRootfs();
387+
public Boolean getReadonlyRootfs() {
388+
return hostConfig.getReadonlyRootfs();
389389
}
390390

391391
@Override

src/main/java/com/github/dockerjava/jaxrs/BuildImageCmdExec.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ protected AbstractCallbackNotifier<BuildResponseItem> callbackNotifier(BuildImag
108108
}
109109
}
110110

111+
if (command.getShmsize() != null) {
112+
webTarget = webTarget.queryParam("shmsize", command.getShmsize());
113+
}
114+
111115
webTarget.property(ClientProperties.REQUEST_ENTITY_PROCESSING, RequestEntityProcessing.CHUNKED);
112116
webTarget.property(ClientProperties.CHUNKED_ENCODING_SIZE, 1024 * 1024);
113117

src/main/java/com/github/dockerjava/jaxrs/async/AbstractCallbackNotifier.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.concurrent.ExecutorService;
1111
import java.util.concurrent.Executors;
1212
import java.util.concurrent.Future;
13+
import java.util.concurrent.ThreadFactory;
1314

1415
import javax.ws.rs.ProcessingException;
1516
import javax.ws.rs.client.Invocation.Builder;
@@ -18,13 +19,17 @@
1819
import com.github.dockerjava.api.async.ResultCallback;
1920
import com.github.dockerjava.core.async.ResponseStreamProcessor;
2021
import com.github.dockerjava.jaxrs.util.WrappedResponseInputStream;
22+
import com.google.common.util.concurrent.ThreadFactoryBuilder;
2123

2224
public abstract class AbstractCallbackNotifier<T> implements Callable<Void> {
2325

2426
private final ResponseStreamProcessor<T> responseStreamProcessor;
2527

2628
private final ResultCallback<T> resultCallback;
2729

30+
private static final ThreadFactory FACTORY =
31+
new ThreadFactoryBuilder().setDaemon(true).setNameFormat("dockerjava-jaxrs-async-%d").build();
32+
2833
protected final Builder requestBuilder;
2934

3035
protected AbstractCallbackNotifier(ResponseStreamProcessor<T> responseStreamProcessor,
@@ -76,7 +81,7 @@ public Void call() throws Exception {
7681

7782
public static <T> Future<Void> startAsyncProcessing(AbstractCallbackNotifier<T> callbackNotifier) {
7883

79-
ExecutorService executorService = Executors.newSingleThreadExecutor();
84+
ExecutorService executorService = Executors.newSingleThreadExecutor(FACTORY);
8085
Future<Void> response = executorService.submit(callbackNotifier);
8186
executorService.shutdown();
8287
return response;

0 commit comments

Comments
 (0)