X Tutup
Skip to content

Commit af15a05

Browse files
authored
extend Jersey from AbstractDockerCmdExecFactory (#1289)
* Make Jersey transport extend from AbstractDockerCmdExecFactory * Use Jackson directly * fix async commands * fix query param encoding * restore `FactoryType.values()`
1 parent 62d24ff commit af15a05

File tree

92 files changed

+325
-3321
lines changed

Some content is hidden

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

92 files changed

+325
-3321
lines changed

docker-java-core/src/main/java/com/github/dockerjava/core/async/JsonStreamProcessor.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.fasterxml.jackson.core.JsonFactory;
1010
import com.fasterxml.jackson.core.JsonParser;
1111
import com.fasterxml.jackson.core.JsonToken;
12+
import com.fasterxml.jackson.core.type.TypeReference;
1213
import com.fasterxml.jackson.databind.ObjectMapper;
1314
import com.fasterxml.jackson.databind.node.ObjectNode;
1415
import com.github.dockerjava.api.async.ResultCallback;
@@ -23,20 +24,21 @@ public class JsonStreamProcessor<T> implements ResponseStreamProcessor<T> {
2324

2425
private static final JsonFactory JSON_FACTORY = new JsonFactory();
2526

26-
private final Class<T> clazz;
27+
private final TypeReference<T> typeReference;
2728

2829
private final ObjectMapper objectMapper;
2930

3031
@Deprecated
3132
public JsonStreamProcessor(Class<T> clazz) {
3233
this(
3334
DefaultDockerClientConfig.createDefaultConfigBuilder().build().getObjectMapper(),
34-
clazz
35+
new TypeReference<T>() {
36+
}
3537
);
3638
}
3739

38-
public JsonStreamProcessor(ObjectMapper objectMapper, Class<T> clazz) {
39-
this.clazz = clazz;
40+
public JsonStreamProcessor(ObjectMapper objectMapper, TypeReference<T> typeReference) {
41+
this.typeReference = typeReference;
4042
this.objectMapper = objectMapper.copy().enable(JsonParser.Feature.AUTO_CLOSE_SOURCE);
4143
}
4244

@@ -54,7 +56,7 @@ public void processResponseStream(InputStream response, ResultCallback<T> result
5456
ObjectNode objectNode = objectMapper.readTree(jp);
5557
// exclude empty item serialization into class #461
5658
if (!objectNode.isEmpty(null)) {
57-
T next = objectMapper.treeToValue(objectNode, clazz);
59+
T next = objectMapper.convertValue(objectNode, typeReference);
5860
resultCallback.onNext(next);
5961
}
6062
} catch (Exception e) {

docker-java-core/src/main/java/com/github/dockerjava/core/exec/StartContainerCmdExec.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import com.github.dockerjava.core.MediaType;
99
import com.github.dockerjava.core.WebTarget;
1010

11+
import java.io.IOException;
12+
1113
public class StartContainerCmdExec extends AbstrSyncDockerCmdExec<StartContainerCmd, Void> implements
1214
StartContainerCmd.Exec {
1315

@@ -23,9 +25,14 @@ protected Void execute(StartContainerCmd command) {
2325
command.getContainerId());
2426

2527
LOGGER.trace("POST: {}", webResource);
26-
webResource.request()
27-
.accept(MediaType.APPLICATION_JSON)
28-
.post(command);
28+
try {
29+
webResource.request()
30+
.accept(MediaType.APPLICATION_JSON)
31+
.post(null)
32+
.close();
33+
} catch (IOException e) {
34+
throw new RuntimeException(e);
35+
}
2936

3037
return null;
3138
}

docker-java-transport-jersey/src/main/java/com/github/dockerjava/jaxrs/AbstrAsyncDockerCmdExec.java

Lines changed: 0 additions & 68 deletions
This file was deleted.

docker-java-transport-jersey/src/main/java/com/github/dockerjava/jaxrs/AbstrDockerCmdExec.java

Lines changed: 0 additions & 98 deletions
This file was deleted.

docker-java-transport-jersey/src/main/java/com/github/dockerjava/jaxrs/AbstrSyncDockerCmdExec.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

docker-java-transport-jersey/src/main/java/com/github/dockerjava/jaxrs/ApacheUnixSocket.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
*
4242
* This class also noop's any calls to setReuseAddress, which is called by the Apache client but isn't supported by AFUnixSocket.
4343
*/
44+
@Deprecated
4445
public class ApacheUnixSocket extends Socket {
4546

4647
private final AFUNIXSocket inner;

docker-java-transport-jersey/src/main/java/com/github/dockerjava/jaxrs/AttachContainerCmdExec.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

docker-java-transport-jersey/src/main/java/com/github/dockerjava/jaxrs/AuthCmdExec.java

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)
X Tutup