Merge pull request #270 from docker-java/refact-streaming · docker-java/docker-java@aff47b9 · GitHub
Skip to content

Commit aff47b9

Browse files
committed
Merge pull request #270 from docker-java/refact-streaming
Passing result callbacks for async commands via commands exec() method
2 parents c9cdda6 + 9b93299 commit aff47b9

142 files changed

Lines changed: 982 additions & 1038 deletions

File tree

Some content is hidden

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

src/main/java/com/github/dockerjava/api/DockerClient.java

Lines changed: 7 additions & 4 deletions

src/main/java/com/github/dockerjava/api/async/ResultCallback.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
/**
66
* Result callback
77
*/
8-
public interface ResultCallback<RES_T> extends Closeable {
8+
public interface ResultCallback<A_RES_T> extends Closeable {
99
/**
1010
* Called when the async processing starts. The passed {@link Closeable} can be used to close/interrupt the
1111
* processing
1212
*/
1313
void onStart(Closeable closeable);
1414

1515
/** Called when an async result event occurs */
16-
void onNext(RES_T object);
16+
void onNext(A_RES_T object);
1717

1818
/** Called when an exception occurs while processing */
1919
void onError(Throwable throwable);

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@
1111
* @author marcus
1212
*
1313
*/
14-
public interface AsyncDockerCmd<CMD_T extends DockerCmd<RES_T>, A_RES_T, RES_T> extends DockerCmd<RES_T> {
14+
public interface AsyncDockerCmd<CMD_T extends AsyncDockerCmd<CMD_T, A_RES_T>, A_RES_T> extends DockerCmd<Void> {
1515

16-
public ResultCallback<A_RES_T> getResultCallback();
1716

18-
public CMD_T withResultCallback(ResultCallback<A_RES_T> resultCallback);
17+
public <T extends ResultCallback<A_RES_T>> T exec(T resultCallback);
1918

2019
}

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

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import java.io.InputStream;
44

55
import com.github.dockerjava.api.DockerClient;
6-
import com.github.dockerjava.api.NotFoundException;
76
import com.github.dockerjava.api.model.Frame;
87

98
/**
@@ -21,7 +20,7 @@
2120
* @param timestamps
2221
* - true or false, if true, print timestamps for every log line. Defaults to false.
2322
*/
24-
public interface AttachContainerCmd extends AsyncDockerCmd<AttachContainerCmd, Frame, Void> {
23+
public interface AttachContainerCmd extends AsyncDockerCmd<AttachContainerCmd, Frame> {
2524

2625
public String getContainerId();
2726

@@ -63,16 +62,7 @@ public interface AttachContainerCmd extends AsyncDockerCmd<AttachContainerCmd, F
6362

6463
public AttachContainerCmd withLogs();
6564

66-
/**
67-
* Its the responsibility of the caller to consume and/or close the {@link InputStream} to prevent connection leaks.
68-
*
69-
* @throws NotFoundException
70-
* No such container
71-
*/
72-
@Override
73-
public Void exec() throws NotFoundException;
74-
75-
public static interface Exec extends DockerCmdExec<AttachContainerCmd, Void> {
65+
public static interface Exec extends DockerCmdAsyncExec<AttachContainerCmd, Frame> {
7666
}
7767

7868
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
import com.github.dockerjava.api.model.AuthResponse;
66

77
/**
8-
*
8+
*
99
* Authenticate with the server, useful for checking authentication.
10-
*
10+
*
1111
*/
12-
public interface AuthCmd extends DockerCmd<AuthResponse> {
12+
public interface AuthCmd extends SyncDockerCmd<AuthResponse> {
1313

1414
public AuthConfig getAuthConfig();
1515

@@ -24,7 +24,7 @@ public interface AuthCmd extends DockerCmd<AuthResponse> {
2424
@Override
2525
public AuthResponse exec() throws UnauthorizedException;
2626

27-
public static interface Exec extends DockerCmdExec<AuthCmd, AuthResponse> {
27+
public static interface Exec extends DockerCmdSyncExec<AuthCmd, AuthResponse> {
2828
}
2929

3030
}

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

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

3-
import com.github.dockerjava.api.model.AuthConfigurations;
4-
import com.github.dockerjava.api.model.EventStreamItem;
5-
63
import java.io.File;
7-
import java.io.IOException;
84
import java.io.InputStream;
95

6+
import com.github.dockerjava.api.model.AuthConfigurations;
7+
import com.github.dockerjava.api.model.BuildResponseItem;
8+
109
/**
11-
*
10+
*
1211
* Build an image from Dockerfile.
13-
*
12+
*
1413
* TODO: http://docs.docker.com/reference/builder/#dockerignore
15-
*
14+
*
1615
*/
17-
public interface BuildImageCmd extends DockerCmd<BuildImageCmd.Response> {
16+
public interface BuildImageCmd extends AsyncDockerCmd<BuildImageCmd, BuildResponseItem> {
1817

1918
public BuildImageCmd withTag(String tag);
2019

@@ -58,14 +57,9 @@ public interface BuildImageCmd extends DockerCmd<BuildImageCmd.Response> {
5857

5958
public BuildImageCmd withBuildAuthConfigs(AuthConfigurations authConfig);
6059

61-
public static interface Exec extends DockerCmdExec<BuildImageCmd, BuildImageCmd.Response> {
60+
public static interface Exec extends DockerCmdAsyncExec<BuildImageCmd, BuildResponseItem> {
6261
}
6362

64-
/**
65-
* @see {@link com.github.dockerjava.core.command.EventStreamReader}
66-
*/
67-
public static abstract class Response extends InputStream {
68-
public abstract Iterable<EventStreamItem> getItems() throws IOException;
69-
}
63+
7064

7165
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
* Create a new image from a container's changes. Returns the new image ID.
1010
*
1111
*/
12-
public interface CommitCmd extends DockerCmd<String> {
12+
public interface CommitCmd extends SyncDockerCmd<String> {
1313

1414
public String getContainerId();
1515

@@ -110,7 +110,7 @@ public interface CommitCmd extends DockerCmd<String> {
110110
@Override
111111
public String exec() throws NotFoundException;
112112

113-
public static interface Exec extends DockerCmdExec<CommitCmd, String> {
113+
public static interface Exec extends DockerCmdSyncExec<CommitCmd, String> {
114114
}
115115

116116
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import com.github.dockerjava.api.NotFoundException;
88
import com.github.dockerjava.api.model.ChangeLog;
99

10-
public interface ContainerDiffCmd extends DockerCmd<List<ChangeLog>> {
10+
public interface ContainerDiffCmd extends SyncDockerCmd<List<ChangeLog>> {
1111

1212
public String getContainerId();
1313

@@ -27,7 +27,7 @@ public interface ContainerDiffCmd extends DockerCmd<List<ChangeLog>> {
2727
@Override
2828
public List<ChangeLog> exec() throws NotFoundException;
2929

30-
public static interface Exec extends DockerCmdExec<ContainerDiffCmd, List<ChangeLog>> {
30+
public static interface Exec extends DockerCmdSyncExec<ContainerDiffCmd, List<ChangeLog>> {
3131
}
3232

3333
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import com.github.dockerjava.api.NotFoundException;
66

7-
public interface CopyFileFromContainerCmd extends DockerCmd<InputStream> {
7+
public interface CopyFileFromContainerCmd extends SyncDockerCmd<InputStream> {
88

99
public String getContainerId();
1010

@@ -20,14 +20,14 @@ public interface CopyFileFromContainerCmd extends DockerCmd<InputStream> {
2020

2121
/**
2222
* Its the responsibility of the caller to consume and/or close the {@link InputStream} to prevent connection leaks.
23-
*
23+
*
2424
* @throws NotFoundException
2525
* No such container
2626
*/
2727
@Override
2828
public InputStream exec() throws NotFoundException;
2929

30-
public static interface Exec extends DockerCmdExec<CopyFileFromContainerCmd, InputStream> {
30+
public static interface Exec extends DockerCmdSyncExec<CopyFileFromContainerCmd, InputStream> {
3131
}
3232

3333
}

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

Lines changed: 2 additions & 2 deletions

0 commit comments

Comments
 (0)