Skip to content

Commit 294ef39

Browse files
committed
ease configuration for docker and proxy configs
1 parent cf6b271 commit 294ef39

File tree

17 files changed

+137
-60
lines changed

17 files changed

+137
-60
lines changed

api-client/src/main/java/de/gesellix/docker/remote/api/EngineApiClientImpl.java

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package de.gesellix.docker.remote.api;
22

3+
import de.gesellix.docker.engine.DockerClientConfig;
34
import de.gesellix.docker.remote.api.client.ConfigApi;
45
import de.gesellix.docker.remote.api.client.ContainerApi;
56
import de.gesellix.docker.remote.api.client.DistributionApi;
@@ -15,6 +16,8 @@
1516
import de.gesellix.docker.remote.api.client.TaskApi;
1617
import de.gesellix.docker.remote.api.client.VolumeApi;
1718

19+
import java.net.Proxy;
20+
1821
public class EngineApiClientImpl implements EngineApiClient {
1922

2023
private final ConfigApi configApi;
@@ -33,20 +36,29 @@ public class EngineApiClientImpl implements EngineApiClient {
3336
private final VolumeApi volumeApi;
3437

3538
public EngineApiClientImpl() {
36-
configApi = new ConfigApi();
37-
containerApi = new ContainerApi();
38-
distributionApi = new DistributionApi();
39-
execApi = new ExecApi();
40-
imageApi = new ImageApi();
41-
networkApi = new NetworkApi();
42-
nodeApi = new NodeApi();
43-
pluginApi = new PluginApi();
44-
secretApi = new SecretApi();
45-
serviceApi = new ServiceApi();
46-
swarmApi = new SwarmApi();
47-
systemApi = new SystemApi();
48-
taskApi = new TaskApi();
49-
volumeApi = new VolumeApi();
39+
this(new DockerClientConfig());
40+
}
41+
42+
public EngineApiClientImpl(DockerClientConfig dockerClientConfig) {
43+
this(dockerClientConfig, null);
44+
// this(dockerClientConfig, Proxy.NO_PROXY);
45+
}
46+
47+
public EngineApiClientImpl(DockerClientConfig dockerClientConfig, Proxy proxy) {
48+
configApi = new ConfigApi(dockerClientConfig, proxy);
49+
containerApi = new ContainerApi(dockerClientConfig, proxy);
50+
distributionApi = new DistributionApi(dockerClientConfig, proxy);
51+
execApi = new ExecApi(dockerClientConfig, proxy);
52+
imageApi = new ImageApi(dockerClientConfig, proxy);
53+
networkApi = new NetworkApi(dockerClientConfig, proxy);
54+
nodeApi = new NodeApi(dockerClientConfig, proxy);
55+
pluginApi = new PluginApi(dockerClientConfig, proxy);
56+
secretApi = new SecretApi(dockerClientConfig, proxy);
57+
serviceApi = new ServiceApi(dockerClientConfig, proxy);
58+
swarmApi = new SwarmApi(dockerClientConfig, proxy);
59+
systemApi = new SystemApi(dockerClientConfig, proxy);
60+
taskApi = new TaskApi(dockerClientConfig, proxy);
61+
volumeApi = new VolumeApi(dockerClientConfig, proxy);
5062
}
5163

5264
@Override

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/ConfigApi.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package de.gesellix.docker.remote.api.client
22

3+
import de.gesellix.docker.engine.DockerClientConfig
34
import de.gesellix.docker.engine.RequestMethod
45
import de.gesellix.docker.remote.api.Config
56
import de.gesellix.docker.remote.api.ConfigSpec
@@ -13,13 +14,16 @@ import de.gesellix.docker.remote.api.core.ResponseType
1314
import de.gesellix.docker.remote.api.core.ServerError
1415
import de.gesellix.docker.remote.api.core.ServerException
1516
import de.gesellix.docker.remote.api.core.Success
17+
import java.net.Proxy
18+
19+
class ConfigApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, proxy: Proxy?) : ApiClient(dockerClientConfig, proxy) {
20+
constructor(dockerClientConfig: DockerClientConfig = defaultClientConfig) : this(dockerClientConfig, null)
1621

17-
class ConfigApi(basePath: String = defaultBasePath) : ApiClient(basePath) {
1822
companion object {
1923

2024
@JvmStatic
21-
val defaultBasePath: String by lazy {
22-
System.getProperties().getProperty("docker.client.baseUrl", "http://localhost/v1.41")
25+
val defaultClientConfig: DockerClientConfig by lazy {
26+
DockerClientConfig()
2327
}
2428
}
2529

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/ContainerApi.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
*/
1212
package de.gesellix.docker.remote.api.client
1313

14+
import de.gesellix.docker.engine.DockerClientConfig
1415
import de.gesellix.docker.engine.RequestMethod.*
1516
import de.gesellix.docker.remote.api.ContainerChangeResponseItem
1617
import de.gesellix.docker.remote.api.ContainerCreateRequest
@@ -41,13 +42,16 @@ import kotlinx.coroutines.runBlocking
4142
import kotlinx.coroutines.withTimeout
4243
import java.net.HttpURLConnection.HTTP_NOT_FOUND
4344
import java.net.HttpURLConnection.HTTP_NOT_MODIFIED
45+
import java.net.Proxy
46+
47+
class ContainerApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, proxy: Proxy?) : ApiClient(dockerClientConfig, proxy) {
48+
constructor(dockerClientConfig: DockerClientConfig = defaultClientConfig) : this(dockerClientConfig, null)
4449

45-
class ContainerApi(basePath: String = defaultBasePath) : ApiClient(basePath) {
4650
companion object {
4751

4852
@JvmStatic
49-
val defaultBasePath: String by lazy {
50-
System.getProperties().getProperty("docker.client.baseUrl", "http://localhost/v1.41")
53+
val defaultClientConfig: DockerClientConfig by lazy {
54+
DockerClientConfig()
5155
}
5256
}
5357

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/DistributionApi.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
*/
1212
package de.gesellix.docker.remote.api.client
1313

14+
import de.gesellix.docker.engine.DockerClientConfig
1415
import de.gesellix.docker.engine.RequestMethod.GET
1516
import de.gesellix.docker.remote.api.DistributionInspect
1617
import de.gesellix.docker.remote.api.core.ApiClient
@@ -22,13 +23,16 @@ import de.gesellix.docker.remote.api.core.ResponseType
2223
import de.gesellix.docker.remote.api.core.ServerError
2324
import de.gesellix.docker.remote.api.core.ServerException
2425
import de.gesellix.docker.remote.api.core.Success
26+
import java.net.Proxy
27+
28+
class DistributionApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, proxy: Proxy?) : ApiClient(dockerClientConfig, proxy) {
29+
constructor(dockerClientConfig: DockerClientConfig = defaultClientConfig) : this(dockerClientConfig, null)
2530

26-
class DistributionApi(basePath: String = defaultBasePath) : ApiClient(basePath) {
2731
companion object {
2832

2933
@JvmStatic
30-
val defaultBasePath: String by lazy {
31-
System.getProperties().getProperty("docker.client.baseUrl", "http://localhost/v1.41")
34+
val defaultClientConfig: DockerClientConfig by lazy {
35+
DockerClientConfig()
3236
}
3337
}
3438

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/ExecApi.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
*/
1212
package de.gesellix.docker.remote.api.client
1313

14+
import de.gesellix.docker.engine.DockerClientConfig
1415
import de.gesellix.docker.engine.RequestMethod.GET
1516
import de.gesellix.docker.engine.RequestMethod.POST
1617
import de.gesellix.docker.remote.api.ExecConfig
@@ -35,15 +36,18 @@ import kotlinx.coroutines.flow.collect
3536
import kotlinx.coroutines.launch
3637
import kotlinx.coroutines.runBlocking
3738
import kotlinx.coroutines.withTimeoutOrNull
39+
import java.net.Proxy
3840
import java.time.Duration
3941
import java.time.temporal.ChronoUnit
4042

41-
class ExecApi(basePath: String = defaultBasePath) : ApiClient(basePath) {
43+
class ExecApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, proxy: Proxy?) : ApiClient(dockerClientConfig, proxy) {
44+
constructor(dockerClientConfig: DockerClientConfig = defaultClientConfig) : this(dockerClientConfig, null)
45+
4246
companion object {
4347

4448
@JvmStatic
45-
val defaultBasePath: String by lazy {
46-
System.getProperties().getProperty("docker.client.baseUrl", "http://localhost/v1.41")
49+
val defaultClientConfig: DockerClientConfig by lazy {
50+
DockerClientConfig()
4751
}
4852
}
4953

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/ImageApi.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
*/
1212
package de.gesellix.docker.remote.api.client
1313

14+
import de.gesellix.docker.engine.DockerClientConfig
1415
import de.gesellix.docker.engine.RequestMethod.DELETE
1516
import de.gesellix.docker.engine.RequestMethod.GET
1617
import de.gesellix.docker.engine.RequestMethod.POST
@@ -42,16 +43,19 @@ import kotlinx.coroutines.runBlocking
4243
import kotlinx.coroutines.withTimeout
4344
import okio.source
4445
import java.io.InputStream
46+
import java.net.Proxy
4547
import java.time.Duration
4648
import java.time.temporal.ChronoUnit
4749
import java.util.*
4850

49-
class ImageApi(basePath: String = defaultBasePath) : ApiClient(basePath) {
51+
class ImageApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, proxy: Proxy?) : ApiClient(dockerClientConfig, proxy) {
52+
constructor(dockerClientConfig: DockerClientConfig = defaultClientConfig) : this(dockerClientConfig, null)
53+
5054
companion object {
5155

5256
@JvmStatic
53-
val defaultBasePath: String by lazy {
54-
System.getProperties().getProperty("docker.client.baseUrl", "http://localhost/v1.41")
57+
val defaultClientConfig: DockerClientConfig by lazy {
58+
DockerClientConfig()
5559
}
5660
}
5761

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/NetworkApi.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
*/
1212
package de.gesellix.docker.remote.api.client
1313

14+
import de.gesellix.docker.engine.DockerClientConfig
1415
import de.gesellix.docker.engine.RequestMethod.DELETE
1516
import de.gesellix.docker.engine.RequestMethod.GET
1617
import de.gesellix.docker.engine.RequestMethod.POST
@@ -30,13 +31,16 @@ import de.gesellix.docker.remote.api.core.ServerError
3031
import de.gesellix.docker.remote.api.core.ServerException
3132
import de.gesellix.docker.remote.api.core.Success
3233
import java.net.HttpURLConnection
34+
import java.net.Proxy
35+
36+
class NetworkApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, proxy: Proxy?) : ApiClient(dockerClientConfig, proxy) {
37+
constructor(dockerClientConfig: DockerClientConfig = defaultClientConfig) : this(dockerClientConfig, null)
3338

34-
class NetworkApi(basePath: String = defaultBasePath) : ApiClient(basePath) {
3539
companion object {
3640

3741
@JvmStatic
38-
val defaultBasePath: String by lazy {
39-
System.getProperties().getProperty("docker.client.baseUrl", "http://localhost/v1.41")
42+
val defaultClientConfig: DockerClientConfig by lazy {
43+
DockerClientConfig()
4044
}
4145
}
4246

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/NodeApi.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
*/
1212
package de.gesellix.docker.remote.api.client
1313

14+
import de.gesellix.docker.engine.DockerClientConfig
1415
import de.gesellix.docker.engine.RequestMethod.DELETE
1516
import de.gesellix.docker.engine.RequestMethod.GET
1617
import de.gesellix.docker.engine.RequestMethod.POST
@@ -25,13 +26,16 @@ import de.gesellix.docker.remote.api.core.ResponseType
2526
import de.gesellix.docker.remote.api.core.ServerError
2627
import de.gesellix.docker.remote.api.core.ServerException
2728
import de.gesellix.docker.remote.api.core.Success
29+
import java.net.Proxy
30+
31+
class NodeApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, proxy: Proxy?) : ApiClient(dockerClientConfig, proxy) {
32+
constructor(dockerClientConfig: DockerClientConfig = defaultClientConfig) : this(dockerClientConfig, null)
2833

29-
class NodeApi(basePath: String = defaultBasePath) : ApiClient(basePath) {
3034
companion object {
3135

3236
@JvmStatic
33-
val defaultBasePath: String by lazy {
34-
System.getProperties().getProperty("docker.client.baseUrl", "http://localhost/v1.41")
37+
val defaultClientConfig: DockerClientConfig by lazy {
38+
DockerClientConfig()
3539
}
3640
}
3741

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/PluginApi.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
*/
1212
package de.gesellix.docker.remote.api.client
1313

14+
import de.gesellix.docker.engine.DockerClientConfig
1415
import de.gesellix.docker.engine.RequestMethod.DELETE
1516
import de.gesellix.docker.engine.RequestMethod.GET
1617
import de.gesellix.docker.engine.RequestMethod.POST
@@ -25,13 +26,16 @@ import de.gesellix.docker.remote.api.core.ResponseType
2526
import de.gesellix.docker.remote.api.core.ServerError
2627
import de.gesellix.docker.remote.api.core.ServerException
2728
import de.gesellix.docker.remote.api.core.Success
29+
import java.net.Proxy
30+
31+
class PluginApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, proxy: Proxy?) : ApiClient(dockerClientConfig, proxy) {
32+
constructor(dockerClientConfig: DockerClientConfig = defaultClientConfig) : this(dockerClientConfig, null)
2833

29-
class PluginApi(basePath: String = defaultBasePath) : ApiClient(basePath) {
3034
companion object {
3135

3236
@JvmStatic
33-
val defaultBasePath: String by lazy {
34-
System.getProperties().getProperty("docker.client.baseUrl", "http://localhost/v1.41")
37+
val defaultClientConfig: DockerClientConfig by lazy {
38+
DockerClientConfig()
3539
}
3640
}
3741

api-client/src/main/kotlin/de/gesellix/docker/remote/api/client/SecretApi.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
*/
1212
package de.gesellix.docker.remote.api.client
1313

14+
import de.gesellix.docker.engine.DockerClientConfig
1415
import de.gesellix.docker.engine.RequestMethod.DELETE
1516
import de.gesellix.docker.engine.RequestMethod.GET
1617
import de.gesellix.docker.engine.RequestMethod.POST
@@ -26,13 +27,16 @@ import de.gesellix.docker.remote.api.core.ResponseType
2627
import de.gesellix.docker.remote.api.core.ServerError
2728
import de.gesellix.docker.remote.api.core.ServerException
2829
import de.gesellix.docker.remote.api.core.Success
30+
import java.net.Proxy
31+
32+
class SecretApi(dockerClientConfig: DockerClientConfig = defaultClientConfig, proxy: Proxy?) : ApiClient(dockerClientConfig, proxy) {
33+
constructor(dockerClientConfig: DockerClientConfig = defaultClientConfig) : this(dockerClientConfig, null)
2934

30-
class SecretApi(basePath: String = defaultBasePath) : ApiClient(basePath) {
3135
companion object {
3236

3337
@JvmStatic
34-
val defaultBasePath: String by lazy {
35-
System.getProperties().getProperty("docker.client.baseUrl", "http://localhost/v1.41")
38+
val defaultClientConfig: DockerClientConfig by lazy {
39+
DockerClientConfig()
3640
}
3741
}
3842

0 commit comments

Comments
 (0)