Skip to content

Commit a531194

Browse files
authored
Make it easy to provide a custom ObjectMapper (docker-java#1637)
1 parent 29217e1 commit a531194

8 files changed

Lines changed: 75 additions & 15 deletions

File tree

docker-java-core/src/main/java/com/github/dockerjava/core/DockerClientConfig.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
*/
2020
public interface DockerClientConfig {
2121

22+
static ObjectMapper getDefaultObjectMapper() {
23+
return DefaultObjectMapperHolder.INSTANCE.getObjectMapper().copy();
24+
}
25+
2226
URI getDockerHost();
2327

2428
RemoteApiVersion getApiVersion();
@@ -41,7 +45,7 @@ public interface DockerClientConfig {
4145
SSLConfig getSSLConfig();
4246

4347
default ObjectMapper getObjectMapper() {
44-
return DefaultObjectMapperHolder.INSTANCE.getObjectMapper().copy();
48+
return getDefaultObjectMapper();
4549
}
4650
}
4751

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.github.dockerjava.core;
2+
3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.github.dockerjava.api.model.AuthConfig;
5+
import com.github.dockerjava.api.model.AuthConfigurations;
6+
7+
import java.net.URI;
8+
9+
@SuppressWarnings("unused")
10+
public class DockerClientConfigDelegate implements DockerClientConfig {
11+
12+
final DockerClientConfig original;
13+
14+
public DockerClientConfigDelegate(DockerClientConfig original) {
15+
this.original = original;
16+
}
17+
18+
public URI getDockerHost() {
19+
return original.getDockerHost();
20+
}
21+
22+
public RemoteApiVersion getApiVersion() {
23+
return original.getApiVersion();
24+
}
25+
26+
public String getRegistryUsername() {
27+
return original.getRegistryUsername();
28+
}
29+
30+
public String getRegistryPassword() {
31+
return original.getRegistryPassword();
32+
}
33+
34+
public String getRegistryEmail() {
35+
return original.getRegistryEmail();
36+
}
37+
38+
public String getRegistryUrl() {
39+
return original.getRegistryUrl();
40+
}
41+
42+
public AuthConfig effectiveAuthConfig(String imageName) {
43+
return original.effectiveAuthConfig(imageName);
44+
}
45+
46+
public AuthConfigurations getAuthConfigurations() {
47+
return original.getAuthConfigurations();
48+
}
49+
50+
public SSLConfig getSSLConfig() {
51+
return original.getSSLConfig();
52+
}
53+
54+
public ObjectMapper getObjectMapper() {
55+
return original.getObjectMapper();
56+
}
57+
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import com.fasterxml.jackson.databind.ObjectMapper;
1414
import com.fasterxml.jackson.databind.node.ObjectNode;
1515
import com.github.dockerjava.api.async.ResultCallback;
16-
import com.github.dockerjava.core.DefaultDockerClientConfig;
16+
import com.github.dockerjava.core.DockerClientConfig;
1717

1818
/**
1919
*
@@ -33,7 +33,7 @@ public class JsonStreamProcessor<T> implements ResponseStreamProcessor<T> {
3333
@Deprecated
3434
public JsonStreamProcessor(Class<T> clazz) {
3535
this(
36-
DefaultDockerClientConfig.createDefaultConfigBuilder().build().getObjectMapper(),
36+
DockerClientConfig.getDefaultObjectMapper(),
3737
new TypeReference<T>() {
3838
}
3939
);

docker-java-transport-netty/src/main/java/com/github/dockerjava/netty/NettyInvocationBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.github.dockerjava.api.async.ResultCallback;
77
import com.github.dockerjava.api.exception.DockerClientException;
88
import com.github.dockerjava.api.model.Frame;
9-
import com.github.dockerjava.core.DefaultDockerClientConfig;
9+
import com.github.dockerjava.core.DockerClientConfig;
1010
import com.github.dockerjava.core.InvocationBuilder;
1111
import com.github.dockerjava.core.async.ResultCallbackTemplate;
1212
import com.github.dockerjava.netty.handler.FramedResponseStreamHandler;
@@ -85,7 +85,7 @@ public void onNext(Void object) {
8585
@Deprecated
8686
public NettyInvocationBuilder(ChannelProvider channelProvider, String resource) {
8787
this(
88-
DefaultDockerClientConfig.createDefaultConfigBuilder().build().getObjectMapper(),
88+
DockerClientConfig.getDefaultObjectMapper(),
8989
channelProvider,
9090
resource
9191
);

docker-java-transport-netty/src/main/java/com/github/dockerjava/netty/NettyWebTarget.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import java.util.Set;
1414

1515
import com.fasterxml.jackson.databind.ObjectMapper;
16-
import com.github.dockerjava.core.DefaultDockerClientConfig;
16+
import com.github.dockerjava.core.DockerClientConfig;
1717
import com.github.dockerjava.core.WebTarget;
1818
import com.google.common.collect.ImmutableSet;
1919
import io.netty.handler.codec.http.HttpConstants;
@@ -50,7 +50,7 @@ public class NettyWebTarget implements WebTarget {
5050
@Deprecated
5151
public NettyWebTarget(ChannelProvider channelProvider, String host) {
5252
this(
53-
DefaultDockerClientConfig.createDefaultConfigBuilder().build().getObjectMapper(),
53+
DockerClientConfig.getDefaultObjectMapper(),
5454
channelProvider,
5555
host,
5656
ImmutableList.of(),

docker-java-transport-netty/src/main/java/com/github/dockerjava/netty/handler/JsonRequestHandler.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package com.github.dockerjava.netty.handler;
22

3-
import com.github.dockerjava.core.DefaultDockerClientConfig;
3+
import com.fasterxml.jackson.databind.ObjectMapper;
4+
import com.github.dockerjava.core.DockerClientConfig;
45
import io.netty.buffer.ByteBuf;
56
import io.netty.channel.ChannelHandlerContext;
67
import io.netty.handler.codec.MessageToByteEncoder;
78

8-
import com.fasterxml.jackson.databind.ObjectMapper;
9-
109
/**
1110
* Handler that encodes an outgoing object to JSON.
1211
*
@@ -17,7 +16,7 @@
1716
@Deprecated
1817
public class JsonRequestHandler extends MessageToByteEncoder<Object> {
1918

20-
private ObjectMapper mapper = DefaultDockerClientConfig.createDefaultConfigBuilder().build().getObjectMapper();
19+
private ObjectMapper mapper = DockerClientConfig.getDefaultObjectMapper();
2120

2221
@Override
2322
protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception {

docker-java-transport-netty/src/main/java/com/github/dockerjava/netty/handler/JsonResponseCallbackHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.github.dockerjava.netty.handler;
22

3-
import com.github.dockerjava.core.DefaultDockerClientConfig;
3+
import com.github.dockerjava.core.DockerClientConfig;
44
import io.netty.buffer.ByteBuf;
55
import io.netty.channel.ChannelHandlerContext;
66
import io.netty.channel.SimpleChannelInboundHandler;
@@ -25,7 +25,7 @@ public class JsonResponseCallbackHandler<T> extends SimpleChannelInboundHandler<
2525
@Deprecated
2626
public JsonResponseCallbackHandler(TypeReference<T> typeReference, ResultCallback<T> callback) {
2727
this(
28-
DefaultDockerClientConfig.createDefaultConfigBuilder().build().getObjectMapper(),
28+
DockerClientConfig.getDefaultObjectMapper(),
2929
typeReference,
3030
callback
3131
);

docker-java/src/test/java/com/github/dockerjava/test/serdes/JSONTestHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import com.fasterxml.jackson.databind.JsonNode;
1919
import com.fasterxml.jackson.databind.ObjectMapper;
20-
import com.github.dockerjava.core.DefaultDockerClientConfig;
20+
import com.github.dockerjava.core.DockerClientConfig;
2121
import org.apache.commons.io.IOUtils;
2222

2323
import java.io.IOException;
@@ -37,7 +37,7 @@ public class JSONTestHelper {
3737

3838
static {
3939
try {
40-
MAPPER = DefaultDockerClientConfig.createDefaultConfigBuilder().build().getObjectMapper();
40+
MAPPER = DockerClientConfig.getDefaultObjectMapper();
4141
} catch (Throwable e) {
4242
e.printStackTrace();
4343
throw e;

0 commit comments

Comments
 (0)