Skip to content

Commit 527c7a5

Browse files
committed
Migrate the QueryUtil to plain Java
1 parent 6fcbac8 commit 527c7a5

File tree

11 files changed

+137
-150
lines changed

11 files changed

+137
-150
lines changed

client/src/main/groovy/de/gesellix/docker/client/config/ManageConfigClient.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
package de.gesellix.docker.client.config;
22

3+
import java.util.Base64;
4+
import java.util.HashMap;
5+
import java.util.List;
6+
import java.util.Map;
7+
8+
import org.slf4j.Logger;
9+
import org.slf4j.LoggerFactory;
10+
311
import de.gesellix.docker.client.EngineResponseContent;
412
import de.gesellix.docker.remote.api.Config;
513
import de.gesellix.docker.remote.api.ConfigCreateRequest;
614
import de.gesellix.docker.remote.api.ConfigSpec;
715
import de.gesellix.docker.remote.api.EngineApiClient;
816
import de.gesellix.docker.remote.api.IdResponse;
9-
import de.gesellix.util.QueryUtil;
10-
import org.slf4j.Logger;
11-
import org.slf4j.LoggerFactory;
12-
13-
import java.util.Base64;
14-
import java.util.HashMap;
15-
import java.util.List;
16-
import java.util.Map;
17+
import de.gesellix.util.QueryParameterEncoder;
1718

1819
public class ManageConfigClient implements ManageConfig {
1920

@@ -57,7 +58,7 @@ public EngineResponseContent<List<Config>> configs(Map<String, Object> query) {
5758
actualQuery.putAll(query);
5859
}
5960

60-
new QueryUtil().jsonEncodeQueryParameter(actualQuery, "filters");
61+
new QueryParameterEncoder().jsonEncodeQueryParameter(actualQuery, "filters");
6162
return configs((String) actualQuery.get("filters"));
6263
}
6364

client/src/main/groovy/de/gesellix/docker/client/container/ManageContainerClient.groovy

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import de.gesellix.docker.remote.api.client.ContainerApi
2626
import de.gesellix.docker.remote.api.core.ClientException
2727
import de.gesellix.docker.remote.api.core.Frame
2828
import de.gesellix.docker.remote.api.core.StreamCallback
29-
import de.gesellix.util.QueryUtil
29+
import de.gesellix.util.QueryParameterEncoder
3030
import okhttp3.WebSocket
3131
import okhttp3.WebSocketListener
3232
import org.slf4j.Logger
@@ -45,7 +45,7 @@ class ManageContainerClient implements ManageContainer {
4545
private EngineApiClient client
4646
private EngineClient engineClient
4747
private DockerResponseHandler responseHandler
48-
private QueryUtil queryUtil
48+
private QueryParameterEncoder queryParameterEncoder
4949
private ArchiveUtil archiveUtil
5050
private RepositoryTagParser repositoryTagParser
5151

@@ -54,7 +54,7 @@ class ManageContainerClient implements ManageContainer {
5454
this.engineClient = engineClient
5555
this.responseHandler = new DockerResponseHandler()
5656
this.repositoryTagParser = new RepositoryTagParser()
57-
this.queryUtil = new QueryUtil()
57+
this.queryParameterEncoder = new QueryParameterEncoder()
5858
this.archiveUtil = new ArchiveUtil()
5959
}
6060

@@ -320,28 +320,20 @@ class ManageContainerClient implements ManageContainer {
320320
if (query) {
321321
actualQuery.putAll(query)
322322
}
323-
Map defaults = [
324-
follow : true,
325-
stdout : true,
326-
stderr : true,
327-
timestamps: false,
328-
since : 0,
329-
tail : "all"]
330-
queryUtil.applyDefaults(actualQuery, defaults)
331323

332324
// When using the TTY setting is enabled in POST /containers/create,
333325
// the stream is the raw data from the process PTY and client’s stdin.
334326
// When the TTY is disabled, then the stream is multiplexed to separate stdout and stderr.
335327
// def multiplexStreams = !inspectContainer(container).content.config.tty
336328

337329
client.containerApi.containerLogs(container,
338-
actualQuery.follow as Boolean,
339-
actualQuery.stdout as Boolean,
340-
actualQuery.stderr as Boolean,
341-
actualQuery.since as Integer,
330+
actualQuery.getOrDefault("follow", true) as Boolean,
331+
actualQuery.getOrDefault("stdout", true) as Boolean,
332+
actualQuery.getOrDefault("stderr", true) as Boolean,
333+
actualQuery.getOrDefault("since", 0) as Integer,
342334
actualQuery.until as Integer,
343-
actualQuery.timestamps as Boolean,
344-
actualQuery.tail as String,
335+
actualQuery.getOrDefault("timestamps", false) as Boolean,
336+
actualQuery.getOrDefault("tail", "all") as String,
345337
callback, timeout.toMillis())
346338
}
347339

@@ -382,17 +374,15 @@ class ManageContainerClient implements ManageContainer {
382374
@Override
383375
EngineResponseContent<List<Map<String, Object>>> ps(Map<String, Object> query) {
384376
log.info("docker ps")
385-
Map actualQuery = [:]
377+
Map<String, ?> actualQuery = [:]
386378
if (query) {
387379
actualQuery.putAll(query)
388380
}
389-
Map defaults = [all: true, size: false]
390-
queryUtil.applyDefaults(actualQuery, defaults)
391-
queryUtil.jsonEncodeQueryParameter(actualQuery, "filters")
381+
queryParameterEncoder.jsonEncodeQueryParameter(actualQuery, "filters")
392382
List<Map> containerList = client.containerApi.containerList(
393-
actualQuery.all as Boolean,
383+
actualQuery.getOrDefault("all", true) as Boolean,
394384
actualQuery.limit as Integer,
395-
actualQuery.size as Boolean,
385+
actualQuery.getOrDefault("size", false) as Boolean,
396386
actualQuery.filters as String)
397387
return new EngineResponseContent<List<Map<String, Object>>>(containerList)
398388
}

client/src/main/groovy/de/gesellix/docker/client/image/ManageImageClient.groovy

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import de.gesellix.docker.remote.api.ImageSummary
1616
import de.gesellix.docker.remote.api.PushImageInfo
1717
import de.gesellix.docker.remote.api.client.ImageApi
1818
import de.gesellix.docker.remote.api.core.StreamCallback
19-
import de.gesellix.util.QueryUtil
19+
import de.gesellix.util.QueryParameterEncoder
2020
import org.slf4j.Logger
2121
import org.slf4j.LoggerFactory
2222

@@ -28,14 +28,14 @@ class ManageImageClient implements ManageImage {
2828

2929
private EngineApiClient client
3030
private RepositoryTagParser repositoryTagParser
31-
private QueryUtil queryUtil
31+
private QueryParameterEncoder queryParameterEncoder
3232
private ManageAuthentication manageAuthentication
3333

3434
ManageImageClient(EngineApiClient client, ManageAuthentication manageAuthentication) {
3535
this.client = client
3636
this.manageAuthentication = manageAuthentication
3737
this.repositoryTagParser = new RepositoryTagParser()
38-
this.queryUtil = new QueryUtil()
38+
this.queryParameterEncoder = new QueryParameterEncoder()
3939
}
4040

4141
@Override
@@ -47,37 +47,38 @@ class ManageImageClient implements ManageImage {
4747

4848
@Override
4949
void build(InputStream buildContext) {
50-
build(null, null,
51-
buildContext)
50+
build(null, null, buildContext)
5251
}
5352

5453
@Override
55-
void build(StreamCallback<BuildInfo> callback, Duration timeout,
56-
InputStream buildContext) {
54+
void build(StreamCallback<BuildInfo> callback, Duration timeout, InputStream buildContext) {
5755
build(callback, timeout,
58-
null, null, null, null, null, null, null, null, null, null, buildContext)
56+
null, null, null, null, null, null, null, null, null, null,
57+
buildContext)
5958
}
6059

6160
@Override
6261
void build(String tag,
6362
InputStream buildContext) {
64-
build(null, null,
65-
buildContext)
63+
build(null, null, buildContext)
6664
}
6765

6866
@Override
6967
void build(StreamCallback<BuildInfo> callback, Duration timeout,
7068
String tag,
7169
InputStream buildContext) {
7270
build(callback, timeout,
73-
null, tag, null, null, null, null, null, null, null, null, buildContext)
71+
null, tag, null, null, null, null, null, null, null, null,
72+
buildContext)
7473
}
7574

7675
@Override
7776
void build(String dockerfile, String tag, Boolean quiet, Boolean nocache, String pull, Boolean rm,
7877
String buildargs, String labels, String encodedRegistryConfig, String contentType, InputStream buildContext) {
7978
build(null, null,
80-
dockerfile, tag, quiet, nocache, pull, rm, buildargs, labels, encodedRegistryConfig, contentType, buildContext)
79+
dockerfile, tag, quiet, nocache, pull, rm,
80+
buildargs, labels, encodedRegistryConfig, contentType,
81+
buildContext)
8182
}
8283

8384
@Override
@@ -94,20 +95,20 @@ class ManageImageClient implements ManageImage {
9495
? ImageApi.ContentTypeImageBuild.valueOf(contentType)
9596
: ImageApi.ContentTypeImageBuild.ApplicationSlashXMinusTar
9697
client.imageApi.imageBuild(dockerfile,
97-
tag, null, null, quiet, nocache, null, pull,
98-
rm == null ? true : rm, null,
99-
null, null, null, null, null, null,
100-
buildargs,
101-
null,
102-
null,
103-
labels,
104-
null,
105-
contentTypeImageBuild,
106-
encodedRegistryConfig,
107-
null, null,
108-
null,
109-
buildContext,
110-
callback, timeout ? timeout.toMillis() : null)
98+
tag, null, null, quiet, nocache, null, pull,
99+
rm == null ? true : rm, null,
100+
null, null, null, null, null, null,
101+
buildargs,
102+
null,
103+
null,
104+
labels,
105+
null,
106+
contentTypeImageBuild,
107+
encodedRegistryConfig,
108+
null, null,
109+
null,
110+
buildContext,
111+
callback, timeout ? timeout.toMillis() : null)
111112
}
112113

113114
@Override
@@ -141,11 +142,9 @@ class ManageImageClient implements ManageImage {
141142
if (query != null) {
142143
actualQuery.putAll(query)
143144
}
144-
Map<String, Object> defaults = [all: false]
145-
queryUtil.applyDefaults(actualQuery, defaults)
146-
queryUtil.jsonEncodeQueryParameter(actualQuery, "filters")
145+
queryParameterEncoder.jsonEncodeQueryParameter(actualQuery, "filters")
147146
return images(
148-
(Boolean) actualQuery.get("all"),
147+
(Boolean) actualQuery.getOrDefault("all", false),
149148
(String) actualQuery.get("filters"),
150149
(Boolean) actualQuery.get("digests"))
151150
}
@@ -168,7 +167,7 @@ class ManageImageClient implements ManageImage {
168167
if (query != null) {
169168
actualQuery.putAll(query)
170169
}
171-
queryUtil.jsonEncodeQueryParameter(actualQuery, "filters")
170+
queryParameterEncoder.jsonEncodeQueryParameter(actualQuery, "filters")
172171
return pruneImages(actualQuery.filters as String)
173172
}
174173

@@ -257,10 +256,10 @@ class ManageImageClient implements ManageImage {
257256
RepositoryAndTag repoAndTag = repositoryTagParser.parseRepositoryTag(actualImageName)
258257

259258
client.imageApi.imagePush(repoAndTag.repo as String,
260-
authBase64Encoded ?: ".",
261-
repoAndTag.tag as String,
262-
callback,
263-
timeout ? timeout.toMillis() : null)
259+
authBase64Encoded ?: ".",
260+
repoAndTag.tag as String,
261+
callback,
262+
timeout ? timeout.toMillis() : null)
264263
}
265264

266265
@Override
@@ -310,8 +309,7 @@ class ManageImageClient implements ManageImage {
310309
}
311310
log.warn("couldn't find imageId for `${imageName}` via `docker images`")
312311
return imageName
313-
}
314-
else {
312+
} else {
315313
String canonicalImageName = "$imageName:${tag ?: 'latest'}"
316314
if (imageIdsByName[canonicalImageName]) {
317315
return imageIdsByName[canonicalImageName]

client/src/main/groovy/de/gesellix/docker/client/network/ManageNetworkClient.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
package de.gesellix.docker.client.network;
22

3+
import java.util.HashMap;
4+
import java.util.List;
5+
import java.util.Map;
6+
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
9+
310
import de.gesellix.docker.client.EngineResponseContent;
411
import de.gesellix.docker.remote.api.EngineApiClient;
512
import de.gesellix.docker.remote.api.IPAM;
@@ -9,23 +16,17 @@
916
import de.gesellix.docker.remote.api.NetworkCreateResponse;
1017
import de.gesellix.docker.remote.api.NetworkDisconnectRequest;
1118
import de.gesellix.docker.remote.api.NetworkPruneResponse;
12-
import de.gesellix.util.QueryUtil;
13-
import org.slf4j.Logger;
14-
import org.slf4j.LoggerFactory;
15-
16-
import java.util.HashMap;
17-
import java.util.List;
18-
import java.util.Map;
19+
import de.gesellix.util.QueryParameterEncoder;
1920

2021
public class ManageNetworkClient implements ManageNetwork {
2122

2223
private final Logger log = LoggerFactory.getLogger(ManageNetworkClient.class);
2324
private final EngineApiClient client;
24-
private final QueryUtil queryUtil;
25+
private final QueryParameterEncoder queryParameterEncoder;
2526

2627
public ManageNetworkClient(EngineApiClient client) {
2728
this.client = client;
28-
this.queryUtil = new QueryUtil();
29+
this.queryParameterEncoder = new QueryParameterEncoder();
2930
}
3031

3132
/**
@@ -41,7 +42,7 @@ public EngineResponseContent<List<Network>> networks(Map<String, Object> query)
4142
actualQuery.putAll(query);
4243
}
4344

44-
queryUtil.jsonEncodeQueryParameter(actualQuery, "filters");
45+
queryParameterEncoder.jsonEncodeQueryParameter(actualQuery, "filters");
4546
return networks((String) actualQuery.get("filters"));
4647
}
4748

@@ -153,7 +154,7 @@ public EngineResponseContent<NetworkPruneResponse> pruneNetworks(Map<String, Obj
153154
if (query != null) {
154155
actualQuery.putAll(query);
155156
}
156-
queryUtil.jsonEncodeQueryParameter(actualQuery, "filters");
157+
queryParameterEncoder.jsonEncodeQueryParameter(actualQuery, "filters");
157158
return pruneNetworks((String) actualQuery.get("filters"));
158159
}
159160

client/src/main/groovy/de/gesellix/docker/client/node/ManageNodeClient.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package de.gesellix.docker.client.node;
22

3+
import java.util.HashMap;
4+
import java.util.List;
5+
import java.util.Map;
6+
7+
import org.slf4j.Logger;
8+
import org.slf4j.LoggerFactory;
9+
310
import de.gesellix.docker.client.EngineResponseContent;
411
import de.gesellix.docker.client.tasks.ManageTask;
512
import de.gesellix.docker.remote.api.EngineApiClient;
613
import de.gesellix.docker.remote.api.Node;
714
import de.gesellix.docker.remote.api.NodeSpec;
815
import de.gesellix.docker.remote.api.Task;
9-
import de.gesellix.util.QueryUtil;
10-
import org.slf4j.Logger;
11-
import org.slf4j.LoggerFactory;
12-
13-
import java.util.HashMap;
14-
import java.util.List;
15-
import java.util.Map;
16+
import de.gesellix.util.QueryParameterEncoder;
1617

1718
public class ManageNodeClient implements ManageNode {
1819

@@ -39,7 +40,7 @@ public EngineResponseContent<List<Node>> nodes(Map<String, Object> query) {
3940
if (query != null) {
4041
actualQuery.putAll(query);
4142
}
42-
new QueryUtil().jsonEncodeQueryParameter(actualQuery, "filters");
43+
new QueryParameterEncoder().jsonEncodeQueryParameter(actualQuery, "filters");
4344
return nodes((String) actualQuery.get("filters"));
4445
}
4546

@@ -116,7 +117,7 @@ public EngineResponseContent<List<Task>> tasksOnNode(String node, Map<String, Ob
116117
}
117118
Map<String, Object> filters = (Map<String, Object>) actualQuery.get("filters");
118119
filters.put("node", nodeUtil.resolveNodeId(node));
119-
new QueryUtil().jsonEncodeQueryParameter(actualQuery, "filters");
120+
new QueryParameterEncoder().jsonEncodeQueryParameter(actualQuery, "filters");
120121
return manageTask.tasks((String) actualQuery.get("filters"));
121122
}
122123

0 commit comments

Comments
 (0)