diff --git a/src/main/java/com/github/dockerjava/api/DockerClient.java b/src/main/java/com/github/dockerjava/api/DockerClient.java
index ef16085bb..cd276ec16 100644
--- a/src/main/java/com/github/dockerjava/api/DockerClient.java
+++ b/src/main/java/com/github/dockerjava/api/DockerClient.java
@@ -44,8 +44,11 @@
import com.github.dockerjava.api.command.WaitContainerCmd;
import com.github.dockerjava.api.model.AuthConfig;
import com.github.dockerjava.api.model.Event;
+import com.github.dockerjava.api.model.BuildResponseItem;
import com.github.dockerjava.api.model.Frame;
import com.github.dockerjava.api.model.Identifier;
+import com.github.dockerjava.api.model.PullResponseItem;
+import com.github.dockerjava.api.model.PushResponseItem;
import com.github.dockerjava.api.model.Statistics;
// https://godoc.org/github.com/fsouza/go-dockerclient
@@ -114,13 +117,13 @@ public interface DockerClient extends Closeable {
public WaitContainerCmd waitContainerCmd(String containerId);
- public AttachContainerCmd attachContainerCmd(String containerId, ResultCallback resultCallback);
+ public AttachContainerCmd attachContainerCmd(String containerId);
public ExecStartCmd execStartCmd(String containerId);
public InspectExecCmd inspectExecCmd(String execId);
- public LogContainerCmd logContainerCmd(String containerId, ResultCallback resultCallback);
+ public LogContainerCmd logContainerCmd(String containerId);
public CopyFileFromContainerCmd copyFileFromContainerCmd(String containerId, String resource);
@@ -148,9 +151,9 @@ public interface DockerClient extends Closeable {
public UnpauseContainerCmd unpauseContainerCmd(String containerId);
- public EventsCmd eventsCmd(ResultCallback resultCallback);
+ public EventsCmd eventsCmd();
- public StatsCmd statsCmd(ResultCallback resultCallback);
+ public StatsCmd statsCmd();
@Override
public void close() throws IOException;
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 fc3e5985e..1eb7ebce1 100644
--- a/src/main/java/com/github/dockerjava/api/async/ResultCallback.java
+++ b/src/main/java/com/github/dockerjava/api/async/ResultCallback.java
@@ -5,7 +5,7 @@
/**
* Result callback
*/
-public interface ResultCallback extends Closeable {
+public interface ResultCallback extends Closeable {
/**
* Called when the async processing starts. The passed {@link Closeable} can be used to close/interrupt the
* processing
@@ -13,7 +13,7 @@ public interface ResultCallback extends Closeable {
void onStart(Closeable closeable);
/** Called when an async result event occurs */
- void onNext(RES_T object);
+ void onNext(A_RES_T object);
/** Called when an exception occurs while processing */
void onError(Throwable throwable);
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 4745fae18..fb1b894d0 100644
--- a/src/main/java/com/github/dockerjava/api/command/AsyncDockerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/AsyncDockerCmd.java
@@ -11,10 +11,9 @@
* @author marcus
*
*/
-public interface AsyncDockerCmd, A_RES_T, RES_T> extends DockerCmd {
+public interface AsyncDockerCmd, A_RES_T> extends DockerCmd {
- public ResultCallback getResultCallback();
- public CMD_T withResultCallback(ResultCallback resultCallback);
+ public > 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 3261be28c..f837c89c5 100644
--- a/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/AttachContainerCmd.java
@@ -3,7 +3,6 @@
import java.io.InputStream;
import com.github.dockerjava.api.DockerClient;
-import com.github.dockerjava.api.NotFoundException;
import com.github.dockerjava.api.model.Frame;
/**
@@ -21,7 +20,7 @@
* @param timestamps
* - true or false, if true, print timestamps for every log line. Defaults to false.
*/
-public interface AttachContainerCmd extends AsyncDockerCmd {
+public interface AttachContainerCmd extends AsyncDockerCmd {
public String getContainerId();
@@ -63,16 +62,7 @@ public interface AttachContainerCmd extends AsyncDockerCmd {
+ public static interface Exec extends DockerCmdAsyncExec {
}
}
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 c84fcb3b9..26e05c1e6 100644
--- a/src/main/java/com/github/dockerjava/api/command/AuthCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/AuthCmd.java
@@ -5,11 +5,11 @@
import com.github.dockerjava.api.model.AuthResponse;
/**
- *
+ *
* Authenticate with the server, useful for checking authentication.
- *
+ *
*/
-public interface AuthCmd extends DockerCmd {
+public interface AuthCmd extends SyncDockerCmd {
public AuthConfig getAuthConfig();
@@ -24,7 +24,7 @@ public interface AuthCmd extends DockerCmd {
@Override
public AuthResponse exec() throws UnauthorizedException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/BuildImageCmd.java b/src/main/java/com/github/dockerjava/api/command/BuildImageCmd.java
index 5dd1cc177..5fd6015c3 100644
--- a/src/main/java/com/github/dockerjava/api/command/BuildImageCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/BuildImageCmd.java
@@ -1,20 +1,19 @@
package com.github.dockerjava.api.command;
-import com.github.dockerjava.api.model.AuthConfigurations;
-import com.github.dockerjava.api.model.EventStreamItem;
-
import java.io.File;
-import java.io.IOException;
import java.io.InputStream;
+import com.github.dockerjava.api.model.AuthConfigurations;
+import com.github.dockerjava.api.model.BuildResponseItem;
+
/**
- *
+ *
* Build an image from Dockerfile.
- *
+ *
* TODO: http://docs.docker.com/reference/builder/#dockerignore
- *
+ *
*/
-public interface BuildImageCmd extends DockerCmd {
+public interface BuildImageCmd extends AsyncDockerCmd {
public BuildImageCmd withTag(String tag);
@@ -58,14 +57,9 @@ public interface BuildImageCmd extends DockerCmd {
public BuildImageCmd withBuildAuthConfigs(AuthConfigurations authConfig);
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdAsyncExec {
}
- /**
- * @see {@link com.github.dockerjava.core.command.EventStreamReader}
- */
- public static abstract class Response extends InputStream {
- public abstract Iterable getItems() throws IOException;
- }
+
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/CommitCmd.java b/src/main/java/com/github/dockerjava/api/command/CommitCmd.java
index 2c24a0f42..10de66459 100644
--- a/src/main/java/com/github/dockerjava/api/command/CommitCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/CommitCmd.java
@@ -9,7 +9,7 @@
* Create a new image from a container's changes. Returns the new image ID.
*
*/
-public interface CommitCmd extends DockerCmd {
+public interface CommitCmd extends SyncDockerCmd {
public String getContainerId();
@@ -110,7 +110,7 @@ public interface CommitCmd extends DockerCmd {
@Override
public String exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/ContainerDiffCmd.java b/src/main/java/com/github/dockerjava/api/command/ContainerDiffCmd.java
index ed7028460..968fb5c7c 100644
--- a/src/main/java/com/github/dockerjava/api/command/ContainerDiffCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/ContainerDiffCmd.java
@@ -7,7 +7,7 @@
import com.github.dockerjava.api.NotFoundException;
import com.github.dockerjava.api.model.ChangeLog;
-public interface ContainerDiffCmd extends DockerCmd> {
+public interface ContainerDiffCmd extends SyncDockerCmd> {
public String getContainerId();
@@ -27,7 +27,7 @@ public interface ContainerDiffCmd extends DockerCmd> {
@Override
public List exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec> {
+ public static interface Exec extends DockerCmdSyncExec> {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/CopyFileFromContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/CopyFileFromContainerCmd.java
index eb67dfbd9..1bc3ca909 100644
--- a/src/main/java/com/github/dockerjava/api/command/CopyFileFromContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/CopyFileFromContainerCmd.java
@@ -4,7 +4,7 @@
import com.github.dockerjava.api.NotFoundException;
-public interface CopyFileFromContainerCmd extends DockerCmd {
+public interface CopyFileFromContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -20,14 +20,14 @@ public interface CopyFileFromContainerCmd extends DockerCmd {
/**
* Its the responsibility of the caller to consume and/or close the {@link InputStream} to prevent connection leaks.
- *
+ *
* @throws NotFoundException
* No such container
*/
@Override
public InputStream exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
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 9ad44b2c4..371774414 100644
--- a/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/CreateContainerCmd.java
@@ -17,9 +17,9 @@
import com.github.dockerjava.api.model.Volume;
import com.github.dockerjava.api.model.VolumesFrom;
-public interface CreateContainerCmd extends DockerCmd {
+public interface CreateContainerCmd extends SyncDockerCmd {
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
/**
diff --git a/src/main/java/com/github/dockerjava/api/command/CreateImageCmd.java b/src/main/java/com/github/dockerjava/api/command/CreateImageCmd.java
index a25535d5b..93b00efac 100644
--- a/src/main/java/com/github/dockerjava/api/command/CreateImageCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/CreateImageCmd.java
@@ -2,7 +2,7 @@
import java.io.InputStream;
-public interface CreateImageCmd extends DockerCmd {
+public interface CreateImageCmd extends SyncDockerCmd {
public String getRepository();
@@ -30,7 +30,7 @@ public interface CreateImageCmd extends DockerCmd {
*/
public CreateImageCmd withTag(String tag);
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/DockerCmd.java b/src/main/java/com/github/dockerjava/api/command/DockerCmd.java
index 79236b890..ba9992bed 100644
--- a/src/main/java/com/github/dockerjava/api/command/DockerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/DockerCmd.java
@@ -4,6 +4,6 @@
public interface DockerCmd extends Closeable {
- public RES_T exec();
+
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/DockerCmdAsyncExec.java b/src/main/java/com/github/dockerjava/api/command/DockerCmdAsyncExec.java
new file mode 100644
index 000000000..dfd2a371e
--- /dev/null
+++ b/src/main/java/com/github/dockerjava/api/command/DockerCmdAsyncExec.java
@@ -0,0 +1,9 @@
+package com.github.dockerjava.api.command;
+
+import com.github.dockerjava.api.async.ResultCallback;
+
+public interface DockerCmdAsyncExec, A_RES_T> {
+
+ public Void exec(CMD_T command, ResultCallback resultCallback);
+
+}
diff --git a/src/main/java/com/github/dockerjava/api/command/DockerCmdExec.java b/src/main/java/com/github/dockerjava/api/command/DockerCmdSyncExec.java
similarity index 53%
rename from src/main/java/com/github/dockerjava/api/command/DockerCmdExec.java
rename to src/main/java/com/github/dockerjava/api/command/DockerCmdSyncExec.java
index 635395ed0..678b4afe1 100644
--- a/src/main/java/com/github/dockerjava/api/command/DockerCmdExec.java
+++ b/src/main/java/com/github/dockerjava/api/command/DockerCmdSyncExec.java
@@ -1,6 +1,6 @@
package com.github.dockerjava.api.command;
-public interface DockerCmdExec, RES_T> {
+public interface DockerCmdSyncExec, RES_T> {
public RES_T exec(CMD_T command);
diff --git a/src/main/java/com/github/dockerjava/api/command/EventsCmd.java b/src/main/java/com/github/dockerjava/api/command/EventsCmd.java
index 057bed644..cbcd122a6 100644
--- a/src/main/java/com/github/dockerjava/api/command/EventsCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/EventsCmd.java
@@ -10,7 +10,7 @@
* @param until
* - Stream events until this timestamp
*/
-public interface EventsCmd extends AsyncDockerCmd {
+public interface EventsCmd extends AsyncDockerCmd {
public EventsCmd withSince(String since);
public EventsCmd withUntil(String until);
@@ -19,6 +19,6 @@ public interface EventsCmd extends AsyncDockerCmd {
public String getUntil();
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdAsyncExec {
}
}
diff --git a/src/main/java/com/github/dockerjava/api/command/ExecCreateCmd.java b/src/main/java/com/github/dockerjava/api/command/ExecCreateCmd.java
index ffeef0153..8094f371e 100644
--- a/src/main/java/com/github/dockerjava/api/command/ExecCreateCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/ExecCreateCmd.java
@@ -1,6 +1,6 @@
package com.github.dockerjava.api.command;
-public interface ExecCreateCmd extends DockerCmd {
+public interface ExecCreateCmd extends SyncDockerCmd {
public String getContainerId();
@@ -32,6 +32,6 @@ public interface ExecCreateCmd extends DockerCmd {
public boolean hasTtyEnabled();
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
diff --git a/src/main/java/com/github/dockerjava/api/command/ExecStartCmd.java b/src/main/java/com/github/dockerjava/api/command/ExecStartCmd.java
index 339e2c9a0..cd9eaa017 100644
--- a/src/main/java/com/github/dockerjava/api/command/ExecStartCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/ExecStartCmd.java
@@ -4,7 +4,7 @@
import java.io.InputStream;
-public interface ExecStartCmd extends DockerCmd {
+public interface ExecStartCmd extends SyncDockerCmd {
public String getExecId();
@@ -24,13 +24,13 @@ public interface ExecStartCmd extends DockerCmd {
/**
* Its the responsibility of the caller to consume and/or close the {@link InputStream} to prevent connection leaks.
- *
+ *
* @throws com.github.dockerjava.api.NotFoundException
* No such exec instance
*/
@Override
public InputStream exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
diff --git a/src/main/java/com/github/dockerjava/api/command/InfoCmd.java b/src/main/java/com/github/dockerjava/api/command/InfoCmd.java
index 10e3597e6..2fe7f2bf6 100644
--- a/src/main/java/com/github/dockerjava/api/command/InfoCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/InfoCmd.java
@@ -2,9 +2,9 @@
import com.github.dockerjava.api.model.Info;
-public interface InfoCmd extends DockerCmd {
+public interface InfoCmd extends SyncDockerCmd {
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/InspectContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/InspectContainerCmd.java
index e0d087847..d9988085f 100644
--- a/src/main/java/com/github/dockerjava/api/command/InspectContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/InspectContainerCmd.java
@@ -2,7 +2,7 @@
import com.github.dockerjava.api.NotFoundException;
-public interface InspectContainerCmd extends DockerCmd {
+public interface InspectContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -15,7 +15,7 @@ public interface InspectContainerCmd extends DockerCmd
@Override
public InspectContainerResponse exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/InspectExecCmd.java b/src/main/java/com/github/dockerjava/api/command/InspectExecCmd.java
index 82243614c..36ce45fc5 100644
--- a/src/main/java/com/github/dockerjava/api/command/InspectExecCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/InspectExecCmd.java
@@ -2,7 +2,7 @@
import com.github.dockerjava.api.NotFoundException;
-public interface InspectExecCmd extends DockerCmd {
+public interface InspectExecCmd extends SyncDockerCmd {
public String getExecId();
public InspectExecCmd withExecId(String execId);
@@ -14,6 +14,6 @@ public interface InspectExecCmd extends DockerCmd {
@Override
public InspectExecResponse exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
diff --git a/src/main/java/com/github/dockerjava/api/command/InspectImageCmd.java b/src/main/java/com/github/dockerjava/api/command/InspectImageCmd.java
index ebf6550d2..6eaea9075 100644
--- a/src/main/java/com/github/dockerjava/api/command/InspectImageCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/InspectImageCmd.java
@@ -5,7 +5,7 @@
/**
* Inspect the details of an image.
*/
-public interface InspectImageCmd extends DockerCmd {
+public interface InspectImageCmd extends SyncDockerCmd {
public String getImageId();
@@ -18,7 +18,7 @@ public interface InspectImageCmd extends DockerCmd {
@Override
public InspectImageResponse exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/KillContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/KillContainerCmd.java
index 33fceba3b..513bf09c5 100644
--- a/src/main/java/com/github/dockerjava/api/command/KillContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/KillContainerCmd.java
@@ -5,7 +5,7 @@
/**
* Kill a running container.
*/
-public interface KillContainerCmd extends DockerCmd {
+public interface KillContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -22,7 +22,7 @@ public interface KillContainerCmd extends DockerCmd {
@Override
public Void exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
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 c2a116bed..5cba11755 100644
--- a/src/main/java/com/github/dockerjava/api/command/ListContainersCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/ListContainersCmd.java
@@ -20,7 +20,7 @@
* - Show only containers created before Id, include non-running ones.
*
*/
-public interface ListContainersCmd extends DockerCmd> {
+public interface ListContainersCmd extends SyncDockerCmd> {
public int getLimit();
@@ -46,7 +46,7 @@ public interface ListContainersCmd extends DockerCmd> {
public ListContainersCmd withFilters(Filters filters);
- public static interface Exec extends DockerCmdExec> {
+ public static interface Exec extends DockerCmdSyncExec> {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/ListImagesCmd.java b/src/main/java/com/github/dockerjava/api/command/ListImagesCmd.java
index 4c6a899cf..170ed8102 100644
--- a/src/main/java/com/github/dockerjava/api/command/ListImagesCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/ListImagesCmd.java
@@ -12,7 +12,7 @@
* @param filters
* - a json encoded value of the filters (a map[string][]string) to process on the images list.
*/
-public interface ListImagesCmd extends DockerCmd> {
+public interface ListImagesCmd extends SyncDockerCmd> {
public String getFilters();
@@ -22,7 +22,7 @@ public interface ListImagesCmd extends DockerCmd> {
public ListImagesCmd withFilters(String filters);
- public static interface Exec extends DockerCmdExec> {
+ public static interface Exec extends DockerCmdSyncExec> {
}
}
\ No newline at end of file
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 a0e9d6ba5..a97393aa5 100644
--- a/src/main/java/com/github/dockerjava/api/command/LogContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/LogContainerCmd.java
@@ -1,11 +1,10 @@
package com.github.dockerjava.api.command;
+import java.io.InputStream;
+
import com.github.dockerjava.api.DockerClient;
-import com.github.dockerjava.api.NotFoundException;
import com.github.dockerjava.api.model.Frame;
-import java.io.InputStream;
-
/**
* Get container logs
*
@@ -20,7 +19,7 @@
* @param tail
* - `all` or ``, Output specified number of lines at the end of logs
*/
-public interface LogContainerCmd extends AsyncDockerCmd {
+public interface LogContainerCmd extends AsyncDockerCmd {
public String getContainerId();
@@ -64,16 +63,7 @@ public interface LogContainerCmd extends AsyncDockerCmd {
+ public static interface Exec extends DockerCmdAsyncExec {
}
}
diff --git a/src/main/java/com/github/dockerjava/api/command/PauseContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/PauseContainerCmd.java
index a052c8bcf..21039bb42 100644
--- a/src/main/java/com/github/dockerjava/api/command/PauseContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/PauseContainerCmd.java
@@ -9,7 +9,7 @@
* - Id of the container
*
*/
-public interface PauseContainerCmd extends DockerCmd {
+public interface PauseContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -22,7 +22,7 @@ public interface PauseContainerCmd extends DockerCmd {
@Override
public Void exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/PingCmd.java b/src/main/java/com/github/dockerjava/api/command/PingCmd.java
index a5d88056a..0be834e9a 100644
--- a/src/main/java/com/github/dockerjava/api/command/PingCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/PingCmd.java
@@ -2,11 +2,11 @@
/**
* Ping the Docker server
- *
+ *
*/
-public interface PingCmd extends DockerCmd {
+public interface PingCmd extends SyncDockerCmd {
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/PullImageCmd.java b/src/main/java/com/github/dockerjava/api/command/PullImageCmd.java
index b3e6db6aa..53edbe9a4 100644
--- a/src/main/java/com/github/dockerjava/api/command/PullImageCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/PullImageCmd.java
@@ -1,16 +1,14 @@
package com.github.dockerjava.api.command;
import com.github.dockerjava.api.model.AuthConfig;
-import com.github.dockerjava.core.command.EventStreamReader;
-
-import java.io.InputStream;
+import com.github.dockerjava.api.model.PullResponseItem;
/**
*
* Pull image from repository.
*
*/
-public interface PullImageCmd extends DockerCmd {
+public interface PullImageCmd extends AsyncDockerCmd {
public String getRepository();
@@ -28,15 +26,6 @@ public interface PullImageCmd extends DockerCmd {
public PullImageCmd withAuthConfig(AuthConfig authConfig);
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdAsyncExec {
}
-
- /**
- * Its the responsibility of the caller to consume and/or close the {@link InputStream} to prevent connection leaks.
- *
- * @see {@link EventStreamReader}
- */
- @Override
- public InputStream exec();
-
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/PushImageCmd.java b/src/main/java/com/github/dockerjava/api/command/PushImageCmd.java
index 6b9a67ebe..9b8c55918 100644
--- a/src/main/java/com/github/dockerjava/api/command/PushImageCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/PushImageCmd.java
@@ -1,12 +1,9 @@
package com.github.dockerjava.api.command;
import com.github.dockerjava.api.NotFoundException;
+import com.github.dockerjava.api.async.ResultCallback;
import com.github.dockerjava.api.model.AuthConfig;
-import com.github.dockerjava.api.model.PushEventStreamItem;
-import com.github.dockerjava.core.command.EventStreamReader;
-
-import java.io.IOException;
-import java.io.InputStream;
+import com.github.dockerjava.api.model.PushResponseItem;
/**
* Push the latest image to the repository.
@@ -14,7 +11,7 @@
* @param name
* The name, e.g. "alexec/busybox" or just "busybox" if you want to default. Not null.
*/
-public interface PushImageCmd extends DockerCmd {
+public interface PushImageCmd extends AsyncDockerCmd {
public String getName();
@@ -40,16 +37,9 @@ public interface PushImageCmd extends DockerCmd {
* @throws NotFoundException
* No such image
*/
- public Response exec() throws NotFoundException;
-
- public static interface Exec extends DockerCmdExec {
- }
+ @Override
+ public > T exec(T resultCallback);
- /**
- * @see {@link EventStreamReader}
- */
- public static abstract class Response extends InputStream {
- public abstract Iterable getItems() throws IOException;
+ public static interface Exec extends DockerCmdAsyncExec {
}
-
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/RemoveContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/RemoveContainerCmd.java
index 9f917a327..fe5378dc2 100644
--- a/src/main/java/com/github/dockerjava/api/command/RemoveContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/RemoveContainerCmd.java
@@ -4,13 +4,13 @@
/**
* Remove a container.
- *
+ *
* @param removeVolumes
* - true or false, Remove the volumes associated to the container. Defaults to false
* @param force
* - true or false, Removes the container even if it was running. Defaults to false
*/
-public interface RemoveContainerCmd extends DockerCmd {
+public interface RemoveContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -33,7 +33,7 @@ public interface RemoveContainerCmd extends DockerCmd {
@Override
public Void exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/RemoveImageCmd.java b/src/main/java/com/github/dockerjava/api/command/RemoveImageCmd.java
index 1ce1cd210..99f2835f8 100644
--- a/src/main/java/com/github/dockerjava/api/command/RemoveImageCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/RemoveImageCmd.java
@@ -7,7 +7,7 @@
* Remove an image, deleting any tags it might have.
*
*/
-public interface RemoveImageCmd extends DockerCmd {
+public interface RemoveImageCmd extends SyncDockerCmd {
public String getImageId();
@@ -34,7 +34,7 @@ public interface RemoveImageCmd extends DockerCmd {
/**
* noprune parameter to prevent the deletion of parent images
- *
+ *
*/
public RemoveImageCmd withNoPrune(boolean noPrune);
@@ -45,7 +45,7 @@ public interface RemoveImageCmd extends DockerCmd {
@Override
public Void exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/RestartContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/RestartContainerCmd.java
index aa07fffd1..c2a5219a8 100644
--- a/src/main/java/com/github/dockerjava/api/command/RestartContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/RestartContainerCmd.java
@@ -9,7 +9,7 @@
* - Timeout in seconds before killing the container. Defaults to 10 seconds.
*
*/
-public interface RestartContainerCmd extends DockerCmd {
+public interface RestartContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -26,7 +26,7 @@ public interface RestartContainerCmd extends DockerCmd {
@Override
public Void exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/SaveImageCmd.java b/src/main/java/com/github/dockerjava/api/command/SaveImageCmd.java
index 67425ab66..0b027a764 100644
--- a/src/main/java/com/github/dockerjava/api/command/SaveImageCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/SaveImageCmd.java
@@ -4,7 +4,7 @@
import java.io.InputStream;
-public interface SaveImageCmd extends DockerCmd {
+public interface SaveImageCmd extends SyncDockerCmd {
public String getName();
@@ -24,13 +24,13 @@ public interface SaveImageCmd extends DockerCmd {
/**
* Its the responsibility of the caller to consume and/or close the {@link InputStream} to prevent connection leaks.
- *
+ *
* @throws com.github.dockerjava.api.NotFoundException
* No such image
*/
public InputStream exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
diff --git a/src/main/java/com/github/dockerjava/api/command/SearchImagesCmd.java b/src/main/java/com/github/dockerjava/api/command/SearchImagesCmd.java
index 9279272d3..a1229da9c 100644
--- a/src/main/java/com/github/dockerjava/api/command/SearchImagesCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/SearchImagesCmd.java
@@ -11,13 +11,13 @@
* - search term
*
*/
-public interface SearchImagesCmd extends DockerCmd> {
+public interface SearchImagesCmd extends SyncDockerCmd> {
public String getTerm();
public SearchImagesCmd withTerm(String term);
- public static interface Exec extends DockerCmdExec> {
+ public static interface Exec extends DockerCmdSyncExec> {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java
index 2195e1eca..0cfb3ea8e 100644
--- a/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/StartContainerCmd.java
@@ -7,9 +7,9 @@
* Start a container.
*
*/
-public interface StartContainerCmd extends DockerCmd {
+public interface StartContainerCmd extends SyncDockerCmd {
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
String getContainerId();
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 f394d7f3e..64b38d472 100644
--- a/src/main/java/com/github/dockerjava/api/command/StatsCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/StatsCmd.java
@@ -6,11 +6,11 @@
* 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 {
+public interface StatsCmd extends AsyncDockerCmd {
public StatsCmd withContainerId(String containerId);
public String getContainerId();
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdAsyncExec {
}
}
diff --git a/src/main/java/com/github/dockerjava/api/command/StopContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/StopContainerCmd.java
index d5bf2e610..dc620b699 100644
--- a/src/main/java/com/github/dockerjava/api/command/StopContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/StopContainerCmd.java
@@ -12,7 +12,7 @@
* - Timeout in seconds before killing the container. Defaults to 10 seconds.
*
*/
-public interface StopContainerCmd extends DockerCmd {
+public interface StopContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -31,7 +31,7 @@ public interface StopContainerCmd extends DockerCmd {
@Override
public Void exec() throws NotFoundException, NotModifiedException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/SyncDockerCmd.java b/src/main/java/com/github/dockerjava/api/command/SyncDockerCmd.java
new file mode 100644
index 000000000..7192e46f3
--- /dev/null
+++ b/src/main/java/com/github/dockerjava/api/command/SyncDockerCmd.java
@@ -0,0 +1,8 @@
+package com.github.dockerjava.api.command;
+
+
+public interface SyncDockerCmd extends DockerCmd {
+
+ public RES_T exec();
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/TagImageCmd.java b/src/main/java/com/github/dockerjava/api/command/TagImageCmd.java
index 44fd588f1..21895e358 100644
--- a/src/main/java/com/github/dockerjava/api/command/TagImageCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/TagImageCmd.java
@@ -9,9 +9,9 @@
* The repository to tag in
* @param force
* (not documented)
- *
+ *
*/
-public interface TagImageCmd extends DockerCmd {
+public interface TagImageCmd extends SyncDockerCmd {
public String getImageId();
@@ -31,7 +31,7 @@ public interface TagImageCmd extends DockerCmd {
public TagImageCmd withForce(boolean force);
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/TopContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/TopContainerCmd.java
index cc7e33aa3..3e1762f1d 100644
--- a/src/main/java/com/github/dockerjava/api/command/TopContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/TopContainerCmd.java
@@ -5,7 +5,7 @@
/**
* List processes running inside a container
*/
-public interface TopContainerCmd extends DockerCmd {
+public interface TopContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -22,7 +22,7 @@ public interface TopContainerCmd extends DockerCmd {
@Override
public TopContainerResponse exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/UnpauseContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/UnpauseContainerCmd.java
index 442191416..44f5658e2 100644
--- a/src/main/java/com/github/dockerjava/api/command/UnpauseContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/UnpauseContainerCmd.java
@@ -9,7 +9,7 @@
* - Id of the container
*
*/
-public interface UnpauseContainerCmd extends DockerCmd {
+public interface UnpauseContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -22,7 +22,7 @@ public interface UnpauseContainerCmd extends DockerCmd {
@Override
public Void exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/VersionCmd.java b/src/main/java/com/github/dockerjava/api/command/VersionCmd.java
index 703524623..5f823c6cb 100644
--- a/src/main/java/com/github/dockerjava/api/command/VersionCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/VersionCmd.java
@@ -5,9 +5,9 @@
/**
* Returns the Docker version info.
*/
-public interface VersionCmd extends DockerCmd {
+public interface VersionCmd extends SyncDockerCmd {
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/command/WaitContainerCmd.java b/src/main/java/com/github/dockerjava/api/command/WaitContainerCmd.java
index 8841b08a3..2accc3af9 100644
--- a/src/main/java/com/github/dockerjava/api/command/WaitContainerCmd.java
+++ b/src/main/java/com/github/dockerjava/api/command/WaitContainerCmd.java
@@ -4,10 +4,10 @@
/**
* Wait a container
- *
+ *
* Block until container stops, then returns its exit code
*/
-public interface WaitContainerCmd extends DockerCmd {
+public interface WaitContainerCmd extends SyncDockerCmd {
public String getContainerId();
@@ -20,7 +20,7 @@ public interface WaitContainerCmd extends DockerCmd {
@Override
public Integer exec() throws NotFoundException;
- public static interface Exec extends DockerCmdExec {
+ public static interface Exec extends DockerCmdSyncExec {
}
}
\ No newline at end of file
diff --git a/src/main/java/com/github/dockerjava/api/model/BuildResponseItem.java b/src/main/java/com/github/dockerjava/api/model/BuildResponseItem.java
new file mode 100644
index 000000000..c999652ec
--- /dev/null
+++ b/src/main/java/com/github/dockerjava/api/model/BuildResponseItem.java
@@ -0,0 +1,20 @@
+package com.github.dockerjava.api.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a build response stream item
+ */
+@JsonIgnoreProperties(ignoreUnknown = false)
+public class BuildResponseItem extends ResponseItem {
+
+ private static final long serialVersionUID = -1252904184236343612L;
+
+ @JsonProperty("stream")
+ private String stream;
+
+ public String getStream() {
+ return stream;
+ }
+}
diff --git a/src/main/java/com/github/dockerjava/api/model/EventStreamItem.java b/src/main/java/com/github/dockerjava/api/model/EventStreamItem.java
deleted file mode 100644
index 9c7489812..000000000
--- a/src/main/java/com/github/dockerjava/api/model/EventStreamItem.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.github.dockerjava.api.model;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-import java.io.Serializable;
-
-import com.google.common.base.Objects;
-
-/**
- * Represents an event stream
- */
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class EventStreamItem implements Serializable {
-
- private static final long serialVersionUID = 638778515773898651L;
-
- @JsonProperty("stream")
- private String stream;
-
- // {"error":"Error...", "errorDetail":{"code": 123, "message": "Error..."}}
- @JsonProperty("error")
- private String error;
-
- @JsonProperty("errorDetail")
- private ErrorDetail errorDetail;
-
- public String getStream() {
- return stream;
- }
-
- public String getError() {
- return error;
- }
-
- public ErrorDetail getErrorDetail() {
- return errorDetail;
- }
-
- @JsonIgnoreProperties(ignoreUnknown = true)
- public static class ErrorDetail implements Serializable {
- @JsonProperty("code")
- String code;
-
- @JsonProperty("message")
- String message;
-
- @Override
- public String toString() {
- return Objects.toStringHelper(this).add("code", code).add("message", message).toString();
- }
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper(this).add("stream", stream).add("error", error).add("errorDetail", errorDetail)
- .toString();
- }
-}
diff --git a/src/main/java/com/github/dockerjava/api/model/PullEventStreamItem.java b/src/main/java/com/github/dockerjava/api/model/PullEventStreamItem.java
deleted file mode 100644
index cd49e846e..000000000
--- a/src/main/java/com/github/dockerjava/api/model/PullEventStreamItem.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.github.dockerjava.api.model;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.base.Objects;
-
-import java.io.Serializable;
-
-/**
- * Represents an item returned from pull
- */
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class PullEventStreamItem implements Serializable {
-
- private static final long serialVersionUID = -5187169652557467828L;
-
- @JsonProperty("status")
- private String status;
-
- @JsonProperty("progress")
- private String progress;
-
- @JsonProperty("progressDetail")
- private ProgressDetail progressDetail;
-
- public String getStatus() {
- return status;
- }
-
- public String getProgress() {
- return progress;
- }
-
- public ProgressDetail getProgressDetail() {
- return progressDetail;
- }
-
- @JsonIgnoreProperties(ignoreUnknown = true)
- public static class ProgressDetail implements Serializable {
- @JsonProperty("current")
- int current;
-
- @Override
- public String toString() {
- return "current " + current;
- }
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper(this).add("status", status).add("progress", progress)
- .add("progressDetail", progressDetail).toString();
- }
-}
diff --git a/src/main/java/com/github/dockerjava/api/model/PullResponseItem.java b/src/main/java/com/github/dockerjava/api/model/PullResponseItem.java
new file mode 100644
index 000000000..cb856a115
--- /dev/null
+++ b/src/main/java/com/github/dockerjava/api/model/PullResponseItem.java
@@ -0,0 +1,13 @@
+package com.github.dockerjava.api.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+/**
+ * Represents a pull response stream item
+ */
+@JsonIgnoreProperties(ignoreUnknown = false)
+public class PullResponseItem extends ResponseItem {
+
+ private static final long serialVersionUID = 6316219017613249047L;
+
+}
diff --git a/src/main/java/com/github/dockerjava/api/model/PushEventStreamItem.java b/src/main/java/com/github/dockerjava/api/model/PushEventStreamItem.java
deleted file mode 100644
index e022f0c1a..000000000
--- a/src/main/java/com/github/dockerjava/api/model/PushEventStreamItem.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.github.dockerjava.api.model;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-import java.io.Serializable;
-
-import com.google.common.base.Objects;
-
-/**
- * Represents an item returned from push
- */
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class PushEventStreamItem implements Serializable {
-
- private static final long serialVersionUID = -5187169652557467828L;
-
- @JsonProperty("status")
- private String status;
-
- @JsonProperty("progress")
- private String progress;
-
- @JsonProperty("progressDetail")
- private ProgressDetail progressDetail;
-
- public String getStatus() {
- return status;
- }
-
- public String getProgress() {
- return progress;
- }
-
- public ProgressDetail getProgressDetail() {
- return progressDetail;
- }
-
- @JsonIgnoreProperties(ignoreUnknown = true)
- public static class ProgressDetail implements Serializable {
- @JsonProperty("current")
- int current;
-
- @Override
- public String toString() {
- return "current " + current;
- }
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper(this).add("status", status).add("progress", progress)
- .add("progressDetail", progressDetail).toString();
- }
-}
diff --git a/src/main/java/com/github/dockerjava/api/model/PushResponseItem.java b/src/main/java/com/github/dockerjava/api/model/PushResponseItem.java
new file mode 100644
index 000000000..b97042154
--- /dev/null
+++ b/src/main/java/com/github/dockerjava/api/model/PushResponseItem.java
@@ -0,0 +1,12 @@
+package com.github.dockerjava.api.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+/**
+ * Represents a push response stream item
+ */
+@JsonIgnoreProperties(ignoreUnknown = false)
+public class PushResponseItem extends ResponseItem {
+
+ private static final long serialVersionUID = 8256977108011295857L;
+}
diff --git a/src/main/java/com/github/dockerjava/api/model/ResponseItem.java b/src/main/java/com/github/dockerjava/api/model/ResponseItem.java
new file mode 100644
index 000000000..f7c4c502d
--- /dev/null
+++ b/src/main/java/com/github/dockerjava/api/model/ResponseItem.java
@@ -0,0 +1,89 @@
+package com.github.dockerjava.api.model;
+
+import java.io.Serializable;
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.commons.lang.builder.ToStringStyle;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+/**
+ * Represents a pull response stream item
+ */
+@JsonIgnoreProperties(ignoreUnknown = false)
+public class ResponseItem implements Serializable {
+
+ private static final long serialVersionUID = -5187169652557467828L;
+
+ @JsonProperty("status")
+ private String status;
+
+ @JsonProperty("progress")
+ private String progress;
+
+ @JsonProperty("progressDetail")
+ private ProgressDetail progressDetail;
+
+ @JsonProperty("error")
+ private String error;
+
+ @JsonProperty("errorDetail")
+ private ErrorDetail errorDetail;
+
+ @JsonProperty("id")
+ private String id;
+
+ public String getStatus() {
+ return status;
+ }
+
+ public String getProgress() {
+ return progress;
+ }
+
+ public ProgressDetail getProgressDetail() {
+ return progressDetail;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ @JsonIgnoreProperties(ignoreUnknown = false)
+ public static class ProgressDetail implements Serializable {
+ private static final long serialVersionUID = -1954994695645715264L;
+
+ @JsonProperty("current")
+ int current;
+
+ @JsonProperty("total")
+ int total;
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE).toString();
+ }
+ }
+
+ @JsonIgnoreProperties(ignoreUnknown = false)
+ public static class ErrorDetail implements Serializable {
+ private static final long serialVersionUID = -9136704865403084083L;
+
+ @JsonProperty("code")
+ String code;
+
+ @JsonProperty("message")
+ String message;
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE).toString();
+ }
+ }
+
+ @Override
+ public String toString() {
+ return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE).toString();
+ }
+}
diff --git a/src/main/java/com/github/dockerjava/core/DockerClientImpl.java b/src/main/java/com/github/dockerjava/core/DockerClientImpl.java
index 810910393..947d42bf8 100644
--- a/src/main/java/com/github/dockerjava/core/DockerClientImpl.java
+++ b/src/main/java/com/github/dockerjava/core/DockerClientImpl.java
@@ -49,8 +49,11 @@
import com.github.dockerjava.api.model.AuthConfig;
import com.github.dockerjava.api.model.AuthConfigurations;
import com.github.dockerjava.api.model.Event;
+import com.github.dockerjava.api.model.BuildResponseItem;
import com.github.dockerjava.api.model.Frame;
import com.github.dockerjava.api.model.Identifier;
+import com.github.dockerjava.api.model.PullResponseItem;
+import com.github.dockerjava.api.model.PushResponseItem;
import com.github.dockerjava.api.model.Statistics;
import com.github.dockerjava.core.command.AttachContainerCmdImpl;
import com.github.dockerjava.core.command.AuthCmdImpl;
@@ -284,9 +287,8 @@ public WaitContainerCmd waitContainerCmd(String containerId) {
}
@Override
- public AttachContainerCmd attachContainerCmd(String containerId, ResultCallback resultCallback) {
- return new AttachContainerCmdImpl(getDockerCmdExecFactory().createAttachContainerCmdExec(), containerId,
- resultCallback);
+ public AttachContainerCmd attachContainerCmd(String containerId) {
+ return new AttachContainerCmdImpl(getDockerCmdExecFactory().createAttachContainerCmdExec(), containerId);
}
@Override
@@ -300,9 +302,8 @@ public InspectExecCmd inspectExecCmd(String execId) {
}
@Override
- public LogContainerCmd logContainerCmd(String containerId, ResultCallback resultCallback) {
- return new LogContainerCmdImpl(getDockerCmdExecFactory().createLogContainerCmdExec(), containerId,
- resultCallback);
+ public LogContainerCmd logContainerCmd(String containerId) {
+ return new LogContainerCmdImpl(getDockerCmdExecFactory().createLogContainerCmdExec(), containerId);
}
@Override
@@ -383,13 +384,13 @@ public UnpauseContainerCmd unpauseContainerCmd(String containerId) {
}
@Override
- public EventsCmd eventsCmd(ResultCallback eventCallback) {
- return new EventsCmdImpl(getDockerCmdExecFactory().createEventsCmdExec(), eventCallback);
+ public EventsCmd eventsCmd() {
+ return new EventsCmdImpl(getDockerCmdExecFactory().createEventsCmdExec());
}
@Override
- public StatsCmd statsCmd(ResultCallback statisticsCallback) {
- return new StatsCmdImpl(getDockerCmdExecFactory().createStatsCmdExec(), statisticsCallback);
+ public StatsCmd statsCmd() {
+ return new StatsCmdImpl(getDockerCmdExecFactory().createStatsCmdExec());
}
@Override
diff --git a/src/main/java/com/github/dockerjava/core/async/JsonStreamProcessor.java b/src/main/java/com/github/dockerjava/core/async/JsonStreamProcessor.java
index 5339b3ed0..8c8cb8d3d 100644
--- a/src/main/java/com/github/dockerjava/core/async/JsonStreamProcessor.java
+++ b/src/main/java/com/github/dockerjava/core/async/JsonStreamProcessor.java
@@ -7,6 +7,7 @@
import java.io.InputStream;
import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.core.JsonFactory.Feature;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -33,15 +34,22 @@ public JsonStreamProcessor(Class clazz) {
public void processResponseStream(InputStream response, ResultCallback resultCallback) {
resultCallback.onStart(response);
+ OBJECT_MAPPER.configure(com.fasterxml.jackson.core.JsonParser.Feature.AUTO_CLOSE_SOURCE, true);
try {
JsonParser jp = JSON_FACTORY.createParser(response);
- while (!jp.isClosed() && jp.nextToken() != JsonToken.END_OBJECT) {
+ boolean closed = jp.isClosed();
+ JsonToken nextToken = jp.nextToken();
+ while (!closed && nextToken != null && nextToken != JsonToken.END_OBJECT) {
try {
- resultCallback.onNext(OBJECT_MAPPER.readValue(jp, clazz));
+ T next = OBJECT_MAPPER.readValue(jp, clazz);
+ resultCallback.onNext(next);
} catch (Exception e) {
resultCallback.onError(e);
}
+
+ closed = jp.isClosed();
+ nextToken = jp.nextToken();
}
} catch (Throwable t) {
resultCallback.onError(t);
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 50cc1fd91..a4e08e5a9 100644
--- a/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java
+++ b/src/main/java/com/github/dockerjava/core/async/ResultCallbackTemplate.java
@@ -16,7 +16,7 @@
* @author marcus
*
*/
-public abstract class ResultCallbackTemplate implements ResultCallback {
+public abstract class ResultCallbackTemplate, A_RES_T> implements ResultCallback {
private final CountDownLatch finished = new CountDownLatch(1);
@@ -28,7 +28,7 @@ public void onStart(Closeable stream) {
}
@Override
- public void onNext(T object) {
+ public void onNext(A_RES_T object) {
}
@Override
@@ -60,11 +60,21 @@ public void close() throws IOException {
finished.countDown();
}
- public void awaitFinish() throws InterruptedException {
+ /**
+ * Blocks until {@link ResultCallback#onComplete()} was called
+ */
+ @SuppressWarnings("unchecked")
+ public RC_T awaitCompletion() throws InterruptedException {
finished.await();
+ return (RC_T) this;
}
- public void awaitFinish(long timeout, TimeUnit timeUnit) throws InterruptedException {
+ /**
+ * Blocks until {@link ResultCallback#onComplete()} was called or the given timeout occurs
+ */
+ @SuppressWarnings("unchecked")
+ public RC_T awaitCompletion(long timeout, TimeUnit timeUnit) throws InterruptedException {
finished.await(timeout, timeUnit);
+ return (RC_T) this;
}
}
diff --git a/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java b/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java
new file mode 100644
index 000000000..43293f3fe
--- /dev/null
+++ b/src/main/java/com/github/dockerjava/core/command/AbstrAsyncDockerCmd.java
@@ -0,0 +1,38 @@
+package com.github.dockerjava.core.command;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.io.IOException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.github.dockerjava.api.async.ResultCallback;
+import com.github.dockerjava.api.command.AsyncDockerCmd;
+import com.github.dockerjava.api.command.DockerCmdAsyncExec;
+
+public abstract class AbstrAsyncDockerCmd, A_RES_T> implements
+ AsyncDockerCmd {
+
+ private final static Logger LOGGER = LoggerFactory.getLogger(AbstrAsyncDockerCmd.class);
+
+ protected DockerCmdAsyncExec execution;
+
+ public AbstrAsyncDockerCmd(DockerCmdAsyncExec execution) {
+ checkNotNull(execution, "execution was not specified");
+ this.execution = execution;
+ }
+
+ @Override
+ public > T exec(T resultCallback) {
+ execution.exec((CMD_T) this, resultCallback);
+ return resultCallback;
+ }
+
+ @Override
+ public void close() throws IOException {
+ }
+
+
+
+}
diff --git a/src/main/java/com/github/dockerjava/core/command/AbstrAuthCfgDockerCmd.java b/src/main/java/com/github/dockerjava/core/command/AbstrAuthCfgDockerCmd.java
index 7e9957cbf..341b6a886 100644
--- a/src/main/java/com/github/dockerjava/core/command/AbstrAuthCfgDockerCmd.java
+++ b/src/main/java/com/github/dockerjava/core/command/AbstrAuthCfgDockerCmd.java
@@ -8,17 +8,17 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.dockerjava.api.command.DockerCmd;
-import com.github.dockerjava.api.command.DockerCmdExec;
+import com.github.dockerjava.api.command.DockerCmdSyncExec;
import com.github.dockerjava.api.model.AuthConfig;
public abstract class AbstrAuthCfgDockerCmd, RES_T> extends AbstrDockerCmd {
- public AbstrAuthCfgDockerCmd(DockerCmdExec execution, AuthConfig authConfig) {
+ public AbstrAuthCfgDockerCmd(DockerCmdSyncExec execution, AuthConfig authConfig) {
super(execution);
withOptionalAuthConfig(authConfig);
}
- public AbstrAuthCfgDockerCmd(DockerCmdExec execution) {
+ public AbstrAuthCfgDockerCmd(DockerCmdSyncExec execution) {
super(execution);
}
@@ -39,12 +39,6 @@ private T withOptionalAuthConfig(AuthConfig authConfig) {
return (T) this;
}
- protected String registryAuth() {
- try {
- return Base64.encodeBase64String(new ObjectMapper().writeValueAsString(authConfig).getBytes());
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
+
}
\ No newline at end of file
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 069fba09e..c4fedac58 100644
--- a/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java
+++ b/src/main/java/com/github/dockerjava/core/command/AbstrDockerCmd.java
@@ -4,20 +4,24 @@
import java.io.IOException;
+import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.dockerjava.api.DockerException;
import com.github.dockerjava.api.command.DockerCmd;
-import com.github.dockerjava.api.command.DockerCmdExec;
+import com.github.dockerjava.api.command.DockerCmdSyncExec;
+import com.github.dockerjava.api.command.SyncDockerCmd;
+import com.github.dockerjava.api.model.AuthConfig;
-public abstract class AbstrDockerCmd, RES_T> implements DockerCmd {
+public abstract class AbstrDockerCmd, RES_T> implements SyncDockerCmd {
private final static Logger LOGGER = LoggerFactory.getLogger(AbstrDockerCmd.class);
- protected DockerCmdExec execution;
+ protected DockerCmdSyncExec execution;
- public AbstrDockerCmd(DockerCmdExec execution) {
+ public AbstrDockerCmd(DockerCmdSyncExec execution) {
checkNotNull(execution, "execution was not specified");
this.execution = execution;
}
@@ -32,4 +36,12 @@ public RES_T exec() throws DockerException {
@Override
public void close() throws IOException {
}
+
+ protected String registryAuth(AuthConfig authConfig) {
+ try {
+ return Base64.encodeBase64String(new ObjectMapper().writeValueAsString(authConfig).getBytes());
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
}
diff --git a/src/main/java/com/github/dockerjava/core/command/AttachContainerCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/AttachContainerCmdImpl.java
index eabbb8488..222ea9b3b 100644
--- a/src/main/java/com/github/dockerjava/core/command/AttachContainerCmdImpl.java
+++ b/src/main/java/com/github/dockerjava/core/command/AttachContainerCmdImpl.java
@@ -22,29 +22,15 @@
* @param timestamps
* - true or false, if true, print timestamps for every log line. Defaults to false.
*/
-public class AttachContainerCmdImpl extends AbstrDockerCmd implements AttachContainerCmd {
-
- private ResultCallback resultCallback;
+public class AttachContainerCmdImpl extends AbstrAsyncDockerCmd implements AttachContainerCmd {
private String containerId;
private boolean logs, followStream, timestamps, stdout, stderr;
- public AttachContainerCmdImpl(AttachContainerCmd.Exec exec, String containerId, ResultCallback resultCallback) {
+ public AttachContainerCmdImpl(AttachContainerCmd.Exec exec, String containerId) {
super(exec);
withContainerId(containerId);
- withResultCallback(resultCallback);
- }
-
- public ResultCallback getResultCallback() {
- return resultCallback;
- }
-
- @Override
- public AttachContainerCmd withResultCallback(ResultCallback resultCallback) {
- checkNotNull(resultCallback, "resultCallback was not specified");
- this.resultCallback = resultCallback;
- return this;
}
@Override
@@ -133,13 +119,4 @@ public AttachContainerCmd withLogs(boolean logs) {
public AttachContainerCmd withLogs() {
return withLogs(true);
}
-
- /**
- * @throws NotFoundException
- * No such container
- */
- @Override
- public Void exec() throws NotFoundException {
- return super.exec();
- }
}
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 f61d3b7ac..56ce8f78f 100644
--- a/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java
+++ b/src/main/java/com/github/dockerjava/core/command/BuildImageCmdImpl.java
@@ -8,15 +8,16 @@
import com.github.dockerjava.api.command.BuildImageCmd;
import com.github.dockerjava.api.model.AuthConfigurations;
+import com.github.dockerjava.api.model.BuildResponseItem;
import com.github.dockerjava.core.FilePathUtil;
import com.github.dockerjava.core.dockerfile.Dockerfile;
/**
- *
+ *
* Build an image from Dockerfile.
- *
+ *
*/
-public class BuildImageCmdImpl extends AbstrDockerCmd implements BuildImageCmd {
+public class BuildImageCmdImpl extends AbstrAsyncDockerCmd implements BuildImageCmd {
private InputStream tarInputStream = null;
diff --git a/src/main/java/com/github/dockerjava/core/command/EventStreamReader.java b/src/main/java/com/github/dockerjava/core/command/EventStreamReader.java
deleted file mode 100644
index ffa71d6c9..000000000
--- a/src/main/java/com/github/dockerjava/core/command/EventStreamReader.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.github.dockerjava.core.command;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-public class EventStreamReader implements AutoCloseable {
-
- private final ObjectMapper objectMapper = new ObjectMapper();
-
- private final Class type;
-
- private final InputStream inputStream;
-
- public EventStreamReader(InputStream inputStream, Class type) {
- this.inputStream = inputStream;
- this.type = type;
- }
-
- public I readItem() throws IOException {
- try {
- return objectMapper.readValue(inputStream, type);
- } catch (IOException e) {
- // dirty, but works
- if (e.getMessage().equals("Stream closed")) {
- return null;
- }
- throw e;
- }
- }
-
- @Override
- public void close() throws IOException {
- inputStream.close();
- }
-}
diff --git a/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java
index d1de2e60f..f371c5b7c 100644
--- a/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java
+++ b/src/main/java/com/github/dockerjava/core/command/EventsCmdImpl.java
@@ -7,17 +7,14 @@
/**
* Stream docker events
*/
-public class EventsCmdImpl extends AbstrDockerCmd implements EventsCmd {
+public class EventsCmdImpl extends AbstrAsyncDockerCmd implements EventsCmd {
private String since;
private String until;
- private ResultCallback resultCallback;
-
- public EventsCmdImpl(EventsCmd.Exec exec, ResultCallback resultCallback) {
+ public EventsCmdImpl(EventsCmd.Exec exec) {
super(exec);
- withResultCallback(resultCallback);
}
@Override
@@ -32,12 +29,6 @@ public EventsCmd withUntil(String until) {
return this;
}
- @Override
- public EventsCmd withResultCallback(ResultCallback resultCallback) {
- this.resultCallback = resultCallback;
- return this;
- }
-
@Override
public String getSince() {
return since;
@@ -48,11 +39,6 @@ public String getUntil() {
return until;
}
- @Override
- public ResultCallback getResultCallback() {
- return resultCallback;
- }
-
@Override
public String toString() {
return new StringBuilder("events").append(since != null ? " --since=" + since : "")
diff --git a/src/main/java/com/github/dockerjava/core/command/InspectExecCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/InspectExecCmdImpl.java
index 55fad8c9c..ade3923f3 100644
--- a/src/main/java/com/github/dockerjava/core/command/InspectExecCmdImpl.java
+++ b/src/main/java/com/github/dockerjava/core/command/InspectExecCmdImpl.java
@@ -1,7 +1,7 @@
package com.github.dockerjava.core.command;
import com.github.dockerjava.api.NotFoundException;
-import com.github.dockerjava.api.command.DockerCmdExec;
+import com.github.dockerjava.api.command.DockerCmdSyncExec;
import com.github.dockerjava.api.command.InspectExecCmd;
import com.github.dockerjava.api.command.InspectExecResponse;
import com.google.common.base.Preconditions;
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 9476ecc9b..490b6b1a1 100644
--- a/src/main/java/com/github/dockerjava/core/command/LogContainerCmdImpl.java
+++ b/src/main/java/com/github/dockerjava/core/command/LogContainerCmdImpl.java
@@ -24,9 +24,7 @@
* @param tail
* - `all` or ``, Output specified number of lines at the end of logs
*/
-public class LogContainerCmdImpl extends AbstrDockerCmd implements LogContainerCmd {
-
- private ResultCallback resultCallback;
+public class LogContainerCmdImpl extends AbstrAsyncDockerCmd implements LogContainerCmd {
private String containerId;
@@ -34,10 +32,9 @@ public class LogContainerCmdImpl extends AbstrDockerCmd i
private boolean followStream, timestamps, stdout, stderr;
- public LogContainerCmdImpl(LogContainerCmd.Exec exec, String containerId, ResultCallback resultCallback) {
+ public LogContainerCmdImpl(LogContainerCmd.Exec exec, String containerId) {
super(exec);
withContainerId(containerId);
- withResultCallback(resultCallback);
}
@Override
@@ -45,18 +42,6 @@ public String getContainerId() {
return containerId;
}
- @Override
- public ResultCallback getResultCallback() {
- return resultCallback;
- }
-
- @Override
- public LogContainerCmd withResultCallback(ResultCallback resultCallback) {
- checkNotNull(resultCallback, "resultCallback was not specified");
- this.resultCallback = resultCallback;
- return this;
- }
-
@Override
public int getTail() {
return tail;
@@ -151,12 +136,4 @@ public String toString() {
.append(timestamps ? "--timestamps=true" : "").append(containerId).toString();
}
- /**
- * @throws NotFoundException
- * No such container
- */
- @Override
- public Void exec() throws NotFoundException {
- return super.exec();
- }
}
diff --git a/src/main/java/com/github/dockerjava/core/command/PullImageCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/PullImageCmdImpl.java
index 488562b99..2fe46f12c 100644
--- a/src/main/java/com/github/dockerjava/core/command/PullImageCmdImpl.java
+++ b/src/main/java/com/github/dockerjava/core/command/PullImageCmdImpl.java
@@ -2,25 +2,42 @@
import static com.google.common.base.Preconditions.checkNotNull;
-import java.io.InputStream;
-
+import com.github.dockerjava.api.async.ResultCallback;
import com.github.dockerjava.api.command.PullImageCmd;
import com.github.dockerjava.api.model.AuthConfig;
+import com.github.dockerjava.api.model.PullResponseItem;
/**
*
* Pull image from repository.
*
*/
-public class PullImageCmdImpl extends AbstrAuthCfgDockerCmd implements PullImageCmd {
+public class PullImageCmdImpl extends AbstrAsyncDockerCmd implements PullImageCmd {
private String repository, tag, registry;
+ private AuthConfig authConfig;
+
public PullImageCmdImpl(PullImageCmd.Exec exec, AuthConfig authConfig, String repository) {
- super(exec, authConfig);
+ super(exec);
+ withOptionalAuthConfig(authConfig);
withRepository(repository);
}
+ public AuthConfig getAuthConfig() {
+ return authConfig;
+ }
+
+ public PullImageCmd withAuthConfig(AuthConfig authConfig) {
+ checkNotNull(authConfig, "authConfig was not specified");
+ return withOptionalAuthConfig(authConfig);
+ }
+
+ private PullImageCmd withOptionalAuthConfig(AuthConfig authConfig) {
+ this.authConfig = authConfig;
+ return this;
+ }
+
@Override
public String getRepository() {
return repository;
diff --git a/src/main/java/com/github/dockerjava/core/command/PushImageCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/PushImageCmdImpl.java
index 76bbe46b6..81f1262f1 100644
--- a/src/main/java/com/github/dockerjava/core/command/PushImageCmdImpl.java
+++ b/src/main/java/com/github/dockerjava/core/command/PushImageCmdImpl.java
@@ -2,8 +2,9 @@
import static com.google.common.base.Preconditions.checkNotNull;
-import com.github.dockerjava.api.NotFoundException;
import com.github.dockerjava.api.command.PushImageCmd;
+import com.github.dockerjava.api.model.AuthConfig;
+import com.github.dockerjava.api.model.PushResponseItem;
/**
* Push the latest image to the repository.
@@ -11,13 +12,14 @@
* @param name
* The name, e.g. "alexec/busybox" or just "busybox" if you want to default. Not null.
*/
-public class PushImageCmdImpl extends AbstrAuthCfgDockerCmd implements
- PushImageCmd {
+public class PushImageCmdImpl extends AbstrAsyncDockerCmd implements PushImageCmd {
private String name;
private String tag;
+ private AuthConfig authConfig;
+
public PushImageCmdImpl(PushImageCmd.Exec exec, String name) {
super(exec);
withName(name);
@@ -55,17 +57,24 @@ public PushImageCmd withTag(String tag) {
return this;
}
+ public AuthConfig getAuthConfig() {
+ return authConfig;
+ }
+
+ public PushImageCmd withAuthConfig(AuthConfig authConfig) {
+ checkNotNull(authConfig, "authConfig was not specified");
+ return withOptionalAuthConfig(authConfig);
+ }
+
+ private PushImageCmd withOptionalAuthConfig(AuthConfig authConfig) {
+ this.authConfig = authConfig;
+ return this;
+ }
+
@Override
public String toString() {
return new StringBuilder("push ").append(name).toString();
}
- /**
- * @throws NotFoundException
- * No such image
- */
- @Override
- public Response exec() throws NotFoundException {
- return super.exec();
- }
+
}
diff --git a/src/main/java/com/github/dockerjava/core/command/StatsCmdImpl.java b/src/main/java/com/github/dockerjava/core/command/StatsCmdImpl.java
index 678a9ef49..205f619b7 100644
--- a/src/main/java/com/github/dockerjava/core/command/StatsCmdImpl.java
+++ b/src/main/java/com/github/dockerjava/core/command/StatsCmdImpl.java
@@ -9,15 +9,12 @@
/**
* Container stats
*/
-public class StatsCmdImpl extends AbstrDockerCmd implements StatsCmd {
+public class StatsCmdImpl extends AbstrAsyncDockerCmd implements StatsCmd {
private String containerId;
- private ResultCallback resultCallback;
-
- public StatsCmdImpl(StatsCmd.Exec exec, ResultCallback resultCallback) {
+ public StatsCmdImpl(StatsCmd.Exec exec) {
super(exec);
- withResultCallback(resultCallback);
}
@Override
@@ -32,22 +29,6 @@ public String getContainerId() {
return containerId;
}
- @Override
- public StatsCmd withResultCallback(ResultCallback resultCallback) {
- this.resultCallback = resultCallback;
- return this;
- }
-
- @Override
- public ResultCallback getResultCallback() {
- return resultCallback;
- }
-
- @Override
- public Void exec() {
- return super.exec();
- }
-
@Override
public String toString() {
return new StringBuilder("stats").append(containerId != null ? " --id=" + containerId : "").toString();
diff --git a/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java b/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java
new file mode 100644
index 000000000..cb91a56e7
--- /dev/null
+++ b/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java
@@ -0,0 +1,71 @@
+package com.github.dockerjava.jaxrs;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+import javax.ws.rs.client.WebTarget;
+
+import com.github.dockerjava.api.async.ResultCallback;
+import com.github.dockerjava.api.command.AsyncDockerCmd;
+import com.github.dockerjava.api.command.DockerCmdAsyncExec;
+import com.github.dockerjava.jaxrs.async.AbstractCallbackNotifier;
+
+public abstract class AbstrAsyncDockerCmdExec, A_RES_T> extends
+ AbstrDockerCmdExec implements DockerCmdAsyncExec {
+
+ public AbstrAsyncDockerCmdExec(WebTarget baseResource) {
+ super(baseResource);
+ }
+
+ @Override
+ public Void exec(CMD_T command, ResultCallback resultCallback) {
+ return execute(command, resultCallback);
+ }
+
+ protected final Void execute(final CMD_T command, final ResultCallback resultCallback) {
+
+ ResultCallback