From fc706edc6e10c97cdf20215477f443af75080f6d Mon Sep 17 00:00:00 2001 From: Andrew Block Date: Mon, 27 Oct 2014 17:03:16 -0500 Subject: [PATCH] Allow for custom implementations of DockerCmdExecFactory to be specified without attempting to load default --- .../dockerjava/core/DockerClientBuilder.java | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/github/dockerjava/core/DockerClientBuilder.java b/src/main/java/com/github/dockerjava/core/DockerClientBuilder.java index 80028a10a..fb7783ce1 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientBuilder.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientBuilder.java @@ -11,13 +11,14 @@ public class DockerClientBuilder { private static ServiceLoader serviceLoader = ServiceLoader.load(DockerCmdExecFactory.class); private DockerClientImpl dockerClient = null; + private DockerCmdExecFactory dockerCmdExecFactory = null; private DockerClientBuilder(DockerClientImpl dockerClient) { this.dockerClient = dockerClient; } public static DockerClientBuilder getInstance() { - return new DockerClientBuilder(withDefaultDockerCmdExecFactory(DockerClientImpl.getInstance())); + return new DockerClientBuilder(DockerClientImpl.getInstance()); } public static DockerClientBuilder getInstance(DockerClientConfigBuilder dockerClientConfigBuilder) { @@ -25,22 +26,13 @@ public static DockerClientBuilder getInstance(DockerClientConfigBuilder dockerCl } public static DockerClientBuilder getInstance(DockerClientConfig dockerClientConfig) { - return new DockerClientBuilder(withDefaultDockerCmdExecFactory(DockerClientImpl - .getInstance(dockerClientConfig))); + return new DockerClientBuilder(DockerClientImpl + .getInstance(dockerClientConfig)); } public static DockerClientBuilder getInstance(String serverUrl) { - return new DockerClientBuilder(withDefaultDockerCmdExecFactory(DockerClientImpl - .getInstance(serverUrl))); - } - - private static DockerClientImpl withDefaultDockerCmdExecFactory( - DockerClientImpl dockerClient) { - - DockerCmdExecFactory dockerCmdExecFactory = getDefaultDockerCmdExecFactory(); - - return dockerClient - .withDockerCmdExecFactory(dockerCmdExecFactory); + return new DockerClientBuilder(DockerClientImpl + .getInstance(serverUrl)); } public static DockerCmdExecFactory getDefaultDockerCmdExecFactory() { @@ -53,12 +45,18 @@ public static DockerCmdExecFactory getDefaultDockerCmdExecFactory() { public DockerClientBuilder withDockerCmdExecFactory( DockerCmdExecFactory dockerCmdExecFactory) { - dockerClient = dockerClient - .withDockerCmdExecFactory(dockerCmdExecFactory); + this.dockerCmdExecFactory = dockerCmdExecFactory; return this; } public DockerClient build() { + if(dockerCmdExecFactory != null) { + dockerClient.withDockerCmdExecFactory(dockerCmdExecFactory); + } + else { + dockerClient.withDockerCmdExecFactory(getDefaultDockerCmdExecFactory()); + } + return dockerClient; } }