Skip to content

Commit 9f77972

Browse files
committed
Merge pull request #397 from docker-java/netty
Netty implementation of DockerCmdExecFactory
2 parents 47a9391 + d5dbb5d commit 9f77972

File tree

209 files changed

+7953
-370
lines changed

Some content is hidden

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

209 files changed

+7953
-370
lines changed

pom.xml

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
23
<modelVersion>4.0.0</modelVersion>
34

45
<parent>
@@ -201,6 +202,28 @@
201202
<version>3.0.0</version>
202203
<scope>provided</scope>
203204
</dependency>
205+
206+
<dependency>
207+
<groupId>io.netty</groupId>
208+
<artifactId>netty-codec-http</artifactId>
209+
<version>4.1.0.Beta7</version>
210+
</dependency>
211+
<dependency>
212+
<groupId>io.netty</groupId>
213+
<artifactId>netty-handler</artifactId>
214+
<version>4.1.0.Beta7</version>
215+
</dependency>
216+
<dependency>
217+
<groupId>io.netty</groupId>
218+
<artifactId>netty-handler-proxy</artifactId>
219+
<version>4.1.0.Beta7</version>
220+
</dependency>
221+
<dependency>
222+
<groupId>io.netty</groupId>
223+
<artifactId>netty-transport-native-epoll</artifactId>
224+
<version>4.1.0.Beta7</version>
225+
<classifier>linux-x86_64</classifier>
226+
</dependency>
204227
</dependencies>
205228

206229
<distributionManagement>
@@ -215,6 +238,13 @@
215238
</distributionManagement>
216239

217240
<build>
241+
<!-- <extensions> -->
242+
<!-- <extension> -->
243+
<!-- <groupId>kr.motd.maven</groupId> -->
244+
<!-- <artifactId>os-maven-plugin</artifactId> -->
245+
<!-- <version>1.2.3.Final</version> -->
246+
<!-- </extension> -->
247+
<!-- </extensions> -->
218248
<pluginManagement>
219249
<plugins>
220250

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
/**
99
*
1010
*
11-
* @author marcus
11+
* @author Marcus Linke
1212
*
1313
*/
1414
public interface AsyncDockerCmd<CMD_T extends AsyncDockerCmd<CMD_T, A_RES_T>, A_RES_T> extends DockerCmd<Void> {

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ public interface AttachContainerCmd extends AsyncDockerCmd<AttachContainerCmd, F
4343
@CheckForNull
4444
public Boolean hasStderrEnabled();
4545

46+
@CheckForNull
47+
public InputStream getStdin();
48+
4649
public AttachContainerCmd withContainerId(@Nonnull String containerId);
4750

4851
/**
@@ -58,6 +61,8 @@ public interface AttachContainerCmd extends AsyncDockerCmd<AttachContainerCmd, F
5861

5962
public AttachContainerCmd withStdErr(Boolean stderr);
6063

64+
public AttachContainerCmd withStdIn(InputStream stdin);
65+
6166
public AttachContainerCmd withLogs(Boolean logs);
6267

6368
public static interface Exec extends DockerCmdAsyncExec<AttachContainerCmd, Frame> {

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

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

3-
import com.github.dockerjava.api.model.AuthConfigurations;
4-
import com.github.dockerjava.api.model.BuildResponseItem;
3+
import java.io.File;
4+
import java.io.InputStream;
5+
import java.net.URI;
56

67
import javax.annotation.CheckForNull;
78
import javax.annotation.Nonnull;
89

9-
import java.io.File;
10-
import java.io.InputStream;
11-
import java.net.URI;
10+
import com.github.dockerjava.api.model.AuthConfigurations;
11+
import com.github.dockerjava.api.model.BuildResponseItem;
1212

1313
/**
1414
* Build an image from Dockerfile.

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package com.github.dockerjava.api.command;
22

3+
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
4+
import org.apache.commons.lang.builder.ToStringStyle;
5+
36
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
47
import com.fasterxml.jackson.annotation.JsonProperty;
58

@@ -12,4 +15,9 @@ public class ExecCreateCmdResponse {
1215
public String getId() {
1316
return id;
1417
}
18+
19+
@Override
20+
public String toString() {
21+
return ReflectionToStringBuilder.toString(this, ToStringStyle.SHORT_PREFIX_STYLE);
22+
}
1523
}

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
import javax.annotation.CheckForNull;
66
import javax.annotation.Nonnull;
77

8+
import com.github.dockerjava.api.async.ResultCallback;
89
import com.github.dockerjava.api.exception.NotFoundException;
10+
import com.github.dockerjava.api.model.Frame;
911

10-
public interface ExecStartCmd extends SyncDockerCmd<InputStream> {
12+
public interface ExecStartCmd extends AsyncDockerCmd<ExecStartCmd, Frame> {
1113

1214
@CheckForNull
1315
public String getExecId();
@@ -18,22 +20,26 @@ public interface ExecStartCmd extends SyncDockerCmd<InputStream> {
1820
@CheckForNull
1921
public Boolean hasTtyEnabled();
2022

23+
@CheckForNull
24+
public InputStream getStdin();
25+
2126
public ExecStartCmd withDetach(Boolean detach);
2227

2328
public ExecStartCmd withExecId(@Nonnull String execId);
2429

2530
public ExecStartCmd withTty(Boolean tty);
2631

32+
public ExecStartCmd withStdIn(InputStream stdin);
33+
2734
/**
28-
* Its the responsibility of the caller to consume and/or close the {@link InputStream} to prevent connection leaks.
2935
*
3036
* @throws NotFoundException
3137
* No such exec instance
3238
*/
3339
@Override
34-
public InputStream exec() throws NotFoundException;
40+
public <T extends ResultCallback<Frame>> T exec(T resultCallback);
3541

36-
public static interface Exec extends DockerCmdSyncExec<ExecStartCmd, InputStream> {
42+
public static interface Exec extends DockerCmdAsyncExec<ExecStartCmd, Frame> {
3743
}
3844

3945
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.util.List;
44
import java.util.Map;
55

6-
import com.github.dockerjava.core.RemoteApiVersion;
6+
import javax.annotation.CheckForNull;
77

88
import org.apache.commons.lang.builder.EqualsBuilder;
99
import org.apache.commons.lang.builder.HashCodeBuilder;
@@ -20,8 +20,7 @@
2020
import com.github.dockerjava.api.model.VolumeBinds;
2121
import com.github.dockerjava.api.model.VolumeRW;
2222
import com.github.dockerjava.api.model.VolumesRW;
23-
24-
import javax.annotation.CheckForNull;
23+
import com.github.dockerjava.core.RemoteApiVersion;
2524

2625
/**
2726
*
@@ -285,7 +284,7 @@ public class ContainerState {
285284

286285
/**
287286
* <a href="https://github.com/docker/docker/pull/18127">Unclear</a>
288-
*
287+
*
289288
* @since {@link RemoteApiVersion#UNKNOWN_VERSION}
290289
*/
291290
@CheckForNull

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import javax.annotation.Nonnull;
77

88
import com.github.dockerjava.api.DockerClient;
9+
import com.github.dockerjava.api.async.ResultCallback;
910
import com.github.dockerjava.api.model.Frame;
1011

1112
/**
@@ -69,6 +70,13 @@ public interface LogContainerCmd extends AsyncDockerCmd<LogContainerCmd, Frame>
6970

7071
public LogContainerCmd withSince(Integer since);
7172

73+
/**
74+
* @throws com.github.dockerjava.api.NotFoundException
75+
* No such container
76+
*/
77+
@Override
78+
public <T extends ResultCallback<Frame>> T exec(T resultCallback);
79+
7280
public static interface Exec extends DockerCmdAsyncExec<LogContainerCmd, Frame> {
7381
}
7482

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import javax.annotation.CheckForNull;
44
import javax.annotation.Nonnull;
55

6-
import com.github.dockerjava.api.exception.NotFoundException;
76
import com.github.dockerjava.api.async.ResultCallback;
7+
import com.github.dockerjava.api.exception.NotFoundException;
88
import com.github.dockerjava.api.model.AuthConfig;
99
import com.github.dockerjava.api.model.PushResponseItem;
1010

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
/**
88
*
9-
* @author marcus
9+
* @author Marcus Linke
1010
*
1111
*/
1212
@JsonIgnoreProperties(ignoreUnknown = true)

0 commit comments

Comments
 (0)