From ba526de0715cd040adb3676cbb228c8c1c69ae36 Mon Sep 17 00:00:00 2001 From: Marcus Linke Date: Fri, 22 May 2015 23:28:05 +0200 Subject: [PATCH] remove JAXRS/ApacheConnector specific properties from DockerClientConfig --- .../api/command/DockerCmdExecFactory.java | 5 +- .../dockerjava/core/DockerClientConfig.java | 114 +++--------------- .../dockerjava/core/DockerClientImpl.java | 4 +- .../jaxrs/DockerCmdExecFactoryImpl.java | 77 +++++++++--- .../util/FollowRedirectsFilter.java | 2 +- .../util/JsonClientFilter.java | 2 +- .../{core => jaxrs}/util/LoggingFilter.java | 2 +- .../util/ResponseStatusExceptionFilter.java | 2 +- .../util/SelectiveLoggingFilter.java | 2 +- src/main/resources/docker.io.properties | 2 +- .../core/DockerClientConfigTest.java | 15 ++- .../dockerjava/core/DockerClientImplTest.java | 2 +- .../core/TestDockerCmdExecFactory.java | 13 +- .../command/CreateContainerCmdImplTest.java | 1 + .../core/command/DockerfileFixture.java | 8 +- .../core/command/FrameReaderITest.java | 17 +-- .../frameReaderDockerfile/Dockerfile | 1 - 17 files changed, 123 insertions(+), 146 deletions(-) rename src/main/java/com/github/dockerjava/{core => jaxrs}/util/FollowRedirectsFilter.java (97%) rename src/main/java/com/github/dockerjava/{core => jaxrs}/util/JsonClientFilter.java (95%) rename src/main/java/com/github/dockerjava/{core => jaxrs}/util/LoggingFilter.java (99%) rename src/main/java/com/github/dockerjava/{core => jaxrs}/util/ResponseStatusExceptionFilter.java (98%) rename src/main/java/com/github/dockerjava/{core => jaxrs}/util/SelectiveLoggingFilter.java (96%) diff --git a/src/main/java/com/github/dockerjava/api/command/DockerCmdExecFactory.java b/src/main/java/com/github/dockerjava/api/command/DockerCmdExecFactory.java index 8b9880747..69bb2ed20 100644 --- a/src/main/java/com/github/dockerjava/api/command/DockerCmdExecFactory.java +++ b/src/main/java/com/github/dockerjava/api/command/DockerCmdExecFactory.java @@ -4,10 +4,13 @@ import java.io.IOException; import com.github.dockerjava.core.DockerClientConfig; +import com.github.dockerjava.jaxrs.DockerCmdExecFactoryImpl; public interface DockerCmdExecFactory extends Closeable { - public void init(DockerClientConfig dockerClientConfig); + public DockerCmdExecFactory withDockerClientConfig(DockerClientConfig dockerClientConfig); + + public void init(); public AuthCmd.Exec createAuthCmdExec(); diff --git a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java index 7e0b57b0e..26886e0e0 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientConfig.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientConfig.java @@ -31,15 +31,10 @@ public class DockerClientConfig implements Serializable { private static final String DOCKER_IO_PASSWORD_PROPERTY = "docker.io.password"; private static final String DOCKER_IO_EMAIL_PROPERTY = "docker.io.email"; private static final String DOCKER_IO_SERVER_ADDRESS_PROPERTY = "docker.io.serverAddress"; - private static final String DOCKER_IO_READ_TIMEOUT_PROPERTY = "docker.io.readTimeout"; - // this is really confusing, as there are two ways to spell it - private static final String DOCKER_IO_ENABLE_LOGGING_FILTER_PROPERTY = "docker.io.enableLoggingFilter"; - private static final String DOCKER_IO_FOLLOW_REDIRECTS_FILTER_PROPERTY = "docker.io.followRedirectsFilter"; + private static final String DOCKER_IO_ENABLE_LOGGING_PROPERTY = "docker.io.enableLogging"; private static final String DOCKER_IO_DOCKER_CERT_PATH_PROPERTY = "docker.io.dockerCertPath"; private static final String DOCKER_IO_DOCKER_CFG_PATH_PROPERTY = "docker.io.dockerCfgPath"; - // connection pooling properties - private static final String DOCKER_IO_MAX_PER_ROUTE_PROPERTY = "docker.io.perRouteConnections"; - private static final String DOCKER_IO_MAX_TOTAL_PROPERTY = "docker.io.totalConnections"; + /** * A map from the environment name to the interval name. */ @@ -53,9 +48,7 @@ public class DockerClientConfig implements Serializable { m.put("DOCKER_PASSWORD", DOCKER_IO_PASSWORD_PROPERTY); m.put("DOCKER_EMAIL", DOCKER_IO_EMAIL_PROPERTY); m.put("DOCKER_SERVER_ADDRESS", DOCKER_IO_SERVER_ADDRESS_PROPERTY); - m.put("DOCKER_READ_TIMEOUT", DOCKER_IO_READ_TIMEOUT_PROPERTY); - m.put("DOCKER_LOGGING_FILTER_ENABLED", DOCKER_IO_ENABLE_LOGGING_FILTER_PROPERTY); - m.put("DOCKER_FOLLOW_REDIRECTS_FILTER_ENABLED", DOCKER_IO_FOLLOW_REDIRECTS_FILTER_PROPERTY); + m.put("DOCKER_LOGGING_ENABLED", DOCKER_IO_ENABLE_LOGGING_PROPERTY); m.put(DOCKER_CERT_PATH_PROPERTY, DOCKER_IO_DOCKER_CERT_PATH_PROPERTY); m.put("DOCKER_CFG_PATH", DOCKER_IO_DOCKER_CFG_PATH_PROPERTY); ENV_NAME_TO_IO_NAME = Collections.unmodifiableMap(m); @@ -64,17 +57,12 @@ public class DockerClientConfig implements Serializable { private static final String DOCKER_IO_PROPERTIES_PROPERTY = "docker.io.properties"; private URI uri; private final String version, username, password, email, serverAddress, dockerCfgPath; - private final Integer readTimeout; - private final boolean loggingFilterEnabled; - private final boolean followRedirectsFilterEnabled; + private final boolean loggingEnabled; private final SSLConfig sslConfig; - - private final Integer maxTotalConnections; - private final Integer maxPerRouteConnections; DockerClientConfig(URI uri, String version, String username, String password, String email, String serverAddress, - String dockerCfgPath, Integer readTimeout, boolean loggingFilterEnabled, boolean followRedirectsFilterEnabled, - SSLConfig sslConfig, Integer maxTotalConns, Integer maxPerRouteConns) { + String dockerCfgPath, boolean loggingEnabled, + SSLConfig sslConfig) { this.uri = uri; this.version = version; this.username = username; @@ -82,12 +70,8 @@ public class DockerClientConfig implements Serializable { this.email = email; this.serverAddress = serverAddress; this.dockerCfgPath = dockerCfgPath; - this.readTimeout = readTimeout; - this.loggingFilterEnabled = loggingFilterEnabled; - this.followRedirectsFilterEnabled = followRedirectsFilterEnabled; + this.loggingEnabled = loggingEnabled; this.sslConfig = sslConfig; - this.maxTotalConnections = maxTotalConns; - this.maxPerRouteConnections = maxPerRouteConns; } private static Properties loadIncludedDockerProperties(Properties systemProperties) { @@ -185,9 +169,7 @@ private static Properties overrideDockerPropertiesWithSystemProperties(Propertie DOCKER_IO_PASSWORD_PROPERTY, DOCKER_IO_EMAIL_PROPERTY, DOCKER_IO_SERVER_ADDRESS_PROPERTY, - DOCKER_IO_READ_TIMEOUT_PROPERTY, - DOCKER_IO_ENABLE_LOGGING_FILTER_PROPERTY, - DOCKER_IO_FOLLOW_REDIRECTS_FILTER_PROPERTY, + DOCKER_IO_ENABLE_LOGGING_PROPERTY, DOCKER_IO_DOCKER_CERT_PATH_PROPERTY, DOCKER_IO_DOCKER_CFG_PATH_PROPERTY, }) { @@ -241,16 +223,8 @@ public String getServerAddress() { return serverAddress; } - public Integer getReadTimeout() { - return readTimeout; - } - - public boolean isLoggingFilterEnabled() { - return loggingFilterEnabled; - } - - public boolean followRedirectsFilterEnabled() { - return followRedirectsFilterEnabled; + public boolean isLoggingEnabled() { + return loggingEnabled; } public SSLConfig getSslConfig() { @@ -260,15 +234,7 @@ public SSLConfig getSslConfig() { public String getDockerCfgPath() { return dockerCfgPath; } - - public Integer getMaxTotalConnections() { - return maxTotalConnections; - } - public Integer getMaxPerRoutConnections() { - return maxPerRouteConnections; - } - private AuthConfig getAuthConfig() { AuthConfig authConfig = null; if (getUsername() != null && getPassword() != null && getEmail() != null @@ -336,14 +302,13 @@ public boolean equals(Object o) { DockerClientConfig that = (DockerClientConfig) o; - if (loggingFilterEnabled != that.loggingFilterEnabled) return false; + if (loggingEnabled != that.loggingEnabled) return false; if (sslConfig != null ? !sslConfig.equals(that.sslConfig) : that.sslConfig != null) return false; if (dockerCfgPath != null ? !dockerCfgPath.equals(that.dockerCfgPath) : that.dockerCfgPath != null) return false; if (email != null ? !email.equals(that.email) : that.email != null) return false; if (password != null ? !password.equals(that.password) : that.password != null) return false; - if (readTimeout != null ? !readTimeout.equals(that.readTimeout) : that.readTimeout != null) return false; if (serverAddress != null ? !serverAddress.equals(that.serverAddress) : that.serverAddress != null) return false; if (uri != null ? !uri.equals(that.uri) : that.uri != null) return false; @@ -363,8 +328,7 @@ public int hashCode() { result = 31 * result + (serverAddress != null ? serverAddress.hashCode() : 0); result = 31 * result + (dockerCfgPath != null ? dockerCfgPath.hashCode() : 0); result = 31 * result + (sslConfig != null ? sslConfig.hashCode() : 0); - result = 31 * result + (readTimeout != null ? readTimeout.hashCode() : 0); - result = 31 * result + (loggingFilterEnabled ? 1 : 0); + result = 31 * result + (loggingEnabled ? 1 : 0); return result; } @@ -379,17 +343,14 @@ public String toString() { ", serverAddress='" + serverAddress + '\'' + ", dockerCfgPath='" + dockerCfgPath + '\'' + ", sslConfig='" + sslConfig + '\'' + - ", readTimeout=" + readTimeout + - ", loggingFilterEnabled=" + loggingFilterEnabled + - ", followRedirectsFilterEnabled=" + followRedirectsFilterEnabled + + ", loggingEnabled=" + loggingEnabled + '}'; } public static class DockerClientConfigBuilder { private URI uri; private String version, username, password, email, serverAddress, dockerCfgPath; - private Integer readTimeout, maxTotalConnections, maxPerRouteConnections; - private boolean loggingFilterEnabled, followRedirectsFilterEnabled; + private boolean loggingEnabled; private SSLConfig sslConfig; /** @@ -405,22 +366,11 @@ public DockerClientConfigBuilder withProperties(Properties p) { .withPassword(p.getProperty(DOCKER_IO_PASSWORD_PROPERTY)) .withEmail(p.getProperty(DOCKER_IO_EMAIL_PROPERTY)) .withServerAddress(p.getProperty(DOCKER_IO_SERVER_ADDRESS_PROPERTY)) - .withReadTimeout(Integer.valueOf(p.getProperty(DOCKER_IO_READ_TIMEOUT_PROPERTY, "0"))) - .withLoggingFilter(Boolean.valueOf(p.getProperty(DOCKER_IO_ENABLE_LOGGING_FILTER_PROPERTY, "true"))) - .withFollowRedirectsFilter(Boolean.valueOf(p.getProperty(DOCKER_IO_FOLLOW_REDIRECTS_FILTER_PROPERTY, "false"))) + .withLoggingEnabled(Boolean.valueOf(p.getProperty(DOCKER_IO_ENABLE_LOGGING_PROPERTY, "true"))) .withDockerCertPath(p.getProperty(DOCKER_IO_DOCKER_CERT_PATH_PROPERTY)) - .withDockerCfgPath(p.getProperty(DOCKER_IO_DOCKER_CFG_PATH_PROPERTY)) - .withMaxPerRouteConnections(integerValue(p.getProperty(DOCKER_IO_MAX_PER_ROUTE_PROPERTY))) - .withMaxTotalConnections(integerValue(p.getProperty(DOCKER_IO_MAX_TOTAL_PROPERTY))); + .withDockerCfgPath(p.getProperty(DOCKER_IO_DOCKER_CFG_PATH_PROPERTY)); } - private Integer integerValue(String value) { - if(value != null) - return Integer.valueOf(value); - else - return null; - } - public final DockerClientConfigBuilder withUri(String uri) { checkNotNull(uri, "uri was not specified"); this.uri = URI.create(uri); @@ -452,28 +402,8 @@ public DockerClientConfigBuilder withServerAddress(String serverAddress) { return this; } - public final DockerClientConfigBuilder withReadTimeout(Integer readTimeout) { - this.readTimeout = readTimeout; - return this; - } - - public final DockerClientConfigBuilder withMaxTotalConnections(Integer maxTotalConnections) { - this.maxTotalConnections = maxTotalConnections; - return this; - } - - public final DockerClientConfigBuilder withMaxPerRouteConnections(Integer maxPerRouteConnections) { - this.maxPerRouteConnections = maxPerRouteConnections; - return this; - } - - public final DockerClientConfigBuilder withLoggingFilter(boolean loggingFilterEnabled) { - this.loggingFilterEnabled = loggingFilterEnabled; - return this; - } - - public final DockerClientConfigBuilder withFollowRedirectsFilter(boolean followRedirectsFilterEnabled) { - this.followRedirectsFilterEnabled = followRedirectsFilterEnabled; + public final DockerClientConfigBuilder withLoggingEnabled(boolean loggingEnabled) { + this.loggingEnabled = loggingEnabled; return this; } @@ -504,12 +434,8 @@ public DockerClientConfig build() { email, serverAddress, dockerCfgPath, - readTimeout, - loggingFilterEnabled, - followRedirectsFilterEnabled, - sslConfig, - maxTotalConnections, - maxPerRouteConnections + loggingEnabled, + sslConfig ); } } diff --git a/src/main/java/com/github/dockerjava/core/DockerClientImpl.java b/src/main/java/com/github/dockerjava/core/DockerClientImpl.java index 7e96225f8..9a21b9b16 100644 --- a/src/main/java/com/github/dockerjava/core/DockerClientImpl.java +++ b/src/main/java/com/github/dockerjava/core/DockerClientImpl.java @@ -61,8 +61,8 @@ public DockerClientImpl withDockerCmdExecFactory( DockerCmdExecFactory dockerCmdExecFactory) { checkNotNull(dockerCmdExecFactory, "dockerCmdExecFactory was not specified"); - this.dockerCmdExecFactory = dockerCmdExecFactory; - this.dockerCmdExecFactory.init(dockerClientConfig); + this.dockerCmdExecFactory = dockerCmdExecFactory.withDockerClientConfig(dockerClientConfig); + this.dockerCmdExecFactory.init(); return this; } diff --git a/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java b/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java index 3636bfd06..7c74174da 100644 --- a/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java +++ b/src/main/java/com/github/dockerjava/jaxrs/DockerCmdExecFactoryImpl.java @@ -13,6 +13,7 @@ import javax.net.ssl.SSLContext; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.ClientResponseFilter; import javax.ws.rs.client.WebTarget; import org.apache.http.config.RegistryBuilder; @@ -22,31 +23,70 @@ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.glassfish.jersey.CommonProperties; import org.glassfish.jersey.apache.connector.ApacheClientProperties; + + //import org.glassfish.jersey.apache.connector.ApacheConnectorProvider; // see https://github.com/docker-java/docker-java/issues/196 import com.github.dockerjava.jaxrs.connector.ApacheConnectorProvider; +import com.github.dockerjava.jaxrs.util.FollowRedirectsFilter; +import com.github.dockerjava.jaxrs.util.JsonClientFilter; +import com.github.dockerjava.jaxrs.util.ResponseStatusExceptionFilter; +import com.github.dockerjava.jaxrs.util.SelectiveLoggingFilter; + import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.client.ClientProperties; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; import com.github.dockerjava.api.DockerClientException; import com.github.dockerjava.core.DockerClientConfig; -import com.github.dockerjava.core.util.FollowRedirectsFilter; -import com.github.dockerjava.core.util.JsonClientFilter; -import com.github.dockerjava.core.util.ResponseStatusExceptionFilter; -import com.github.dockerjava.core.util.SelectiveLoggingFilter; - public class DockerCmdExecFactoryImpl implements DockerCmdExecFactory { private static final Logger LOGGER = LoggerFactory .getLogger(DockerCmdExecFactoryImpl.class.getName()); + + private DockerClientConfig dockerClientConfig; private Client client; private WebTarget baseResource; + private Integer readTimeout, maxTotalConnections, maxPerRouteConnections; + + private Class[] clientResponseFilters; + + public final DockerCmdExecFactoryImpl withReadTimeout(Integer readTimeout) { + this.readTimeout = readTimeout; + return this; + } + + public final DockerCmdExecFactoryImpl withMaxTotalConnections( + Integer maxTotalConnections) { + this.maxTotalConnections = maxTotalConnections; + return this; + } + + public final DockerCmdExecFactoryImpl withMaxPerRouteConnections( + Integer maxPerRouteConnections) { + this.maxPerRouteConnections = maxPerRouteConnections; + return this; + } + + public DockerCmdExecFactoryImpl withClientResponseFilters( + Class[] clientResponseFilters) { + checkNotNull(dockerClientConfig, "config was not specified"); + this.clientResponseFilters = clientResponseFilters; + return this; + } + @Override - public void init(DockerClientConfig dockerClientConfig) { + public DockerCmdExecFactoryImpl withDockerClientConfig( + DockerClientConfig dockerClientConfig) { checkNotNull(dockerClientConfig, "config was not specified"); + this.dockerClientConfig = dockerClientConfig; + return this; + } + + @Override + public void init() { ClientConfig clientConfig = new ClientConfig(); clientConfig.connectorProvider(new ApacheConnectorProvider()); @@ -57,16 +97,17 @@ public void init(DockerClientConfig dockerClientConfig) { clientConfig.register(JsonClientFilter.class); clientConfig.register(JacksonJsonProvider.class); - if (dockerClientConfig.followRedirectsFilterEnabled()) { - clientConfig.register(FollowRedirectsFilter.class); + if (dockerClientConfig.isLoggingEnabled()) { + clientConfig.register(new SelectiveLoggingFilter(LOGGER, true)); } - if (dockerClientConfig.isLoggingFilterEnabled()) { - clientConfig.register(new SelectiveLoggingFilter(LOGGER, true)); + if (clientResponseFilters != null) { + for (Class filter : clientResponseFilters) { + clientConfig.register(filter); + } } - if (dockerClientConfig.getReadTimeout() != null) { - int readTimeout = dockerClientConfig.getReadTimeout(); + if (readTimeout != null) { clientConfig.property(ClientProperties.READ_TIMEOUT, readTimeout); } @@ -86,12 +127,10 @@ public void init(DockerClientConfig dockerClientConfig) { PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager( getSchemeRegistry(originalUri, sslContext)); - if (dockerClientConfig.getMaxTotalConnections() != null) - connManager - .setMaxTotal(dockerClientConfig.getMaxTotalConnections()); - if (dockerClientConfig.getMaxPerRoutConnections() != null) - connManager.setDefaultMaxPerRoute(dockerClientConfig - .getMaxPerRoutConnections()); + if (maxTotalConnections != null) + connManager.setMaxTotal(maxTotalConnections); + if (maxPerRouteConnections != null) + connManager.setDefaultMaxPerRoute(maxPerRouteConnections); clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, connManager); @@ -104,7 +143,7 @@ public void init(DockerClientConfig dockerClientConfig) { } client = clientBuilder.build(); - + if (originalUri.getScheme().equals("unix")) { dockerClientConfig.setUri(UnixConnectionSocketFactory .sanitizeUri(originalUri)); diff --git a/src/main/java/com/github/dockerjava/core/util/FollowRedirectsFilter.java b/src/main/java/com/github/dockerjava/jaxrs/util/FollowRedirectsFilter.java similarity index 97% rename from src/main/java/com/github/dockerjava/core/util/FollowRedirectsFilter.java rename to src/main/java/com/github/dockerjava/jaxrs/util/FollowRedirectsFilter.java index b4431b1f4..62cf2dabd 100644 --- a/src/main/java/com/github/dockerjava/core/util/FollowRedirectsFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/util/FollowRedirectsFilter.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.core.util; +package com.github.dockerjava.jaxrs.util; import java.io.IOException; import java.io.InputStream; diff --git a/src/main/java/com/github/dockerjava/core/util/JsonClientFilter.java b/src/main/java/com/github/dockerjava/jaxrs/util/JsonClientFilter.java similarity index 95% rename from src/main/java/com/github/dockerjava/core/util/JsonClientFilter.java rename to src/main/java/com/github/dockerjava/jaxrs/util/JsonClientFilter.java index f2911d961..e0eaa4a4a 100644 --- a/src/main/java/com/github/dockerjava/core/util/JsonClientFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/util/JsonClientFilter.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.core.util; +package com.github.dockerjava.jaxrs.util; import javax.ws.rs.client.ClientRequestContext; diff --git a/src/main/java/com/github/dockerjava/core/util/LoggingFilter.java b/src/main/java/com/github/dockerjava/jaxrs/util/LoggingFilter.java similarity index 99% rename from src/main/java/com/github/dockerjava/core/util/LoggingFilter.java rename to src/main/java/com/github/dockerjava/jaxrs/util/LoggingFilter.java index 5a72ba237..eda72b835 100644 --- a/src/main/java/com/github/dockerjava/core/util/LoggingFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/util/LoggingFilter.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.core.util; +package com.github.dockerjava.jaxrs.util; /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. diff --git a/src/main/java/com/github/dockerjava/core/util/ResponseStatusExceptionFilter.java b/src/main/java/com/github/dockerjava/jaxrs/util/ResponseStatusExceptionFilter.java similarity index 98% rename from src/main/java/com/github/dockerjava/core/util/ResponseStatusExceptionFilter.java rename to src/main/java/com/github/dockerjava/jaxrs/util/ResponseStatusExceptionFilter.java index 7e9708564..af141bf3f 100644 --- a/src/main/java/com/github/dockerjava/core/util/ResponseStatusExceptionFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/util/ResponseStatusExceptionFilter.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.core.util; +package com.github.dockerjava.jaxrs.util; import java.io.EOFException; import java.io.IOException; diff --git a/src/main/java/com/github/dockerjava/core/util/SelectiveLoggingFilter.java b/src/main/java/com/github/dockerjava/jaxrs/util/SelectiveLoggingFilter.java similarity index 96% rename from src/main/java/com/github/dockerjava/core/util/SelectiveLoggingFilter.java rename to src/main/java/com/github/dockerjava/jaxrs/util/SelectiveLoggingFilter.java index 8cfe88b73..6771ebe88 100644 --- a/src/main/java/com/github/dockerjava/core/util/SelectiveLoggingFilter.java +++ b/src/main/java/com/github/dockerjava/jaxrs/util/SelectiveLoggingFilter.java @@ -1,4 +1,4 @@ -package com.github.dockerjava.core.util; +package com.github.dockerjava.jaxrs.util; import java.io.IOException; import java.util.Collections; diff --git a/src/main/resources/docker.io.properties b/src/main/resources/docker.io.properties index 6f0bfc86c..5d2522aa8 100644 --- a/src/main/resources/docker.io.properties +++ b/src/main/resources/docker.io.properties @@ -1,5 +1,5 @@ docker.io.url=https://localhost:2376 -docker.io.enableLoggingFilter=true +docker.io.enableLogging=true docker.io.dockerCertPath=${user.home}/.docker docker.io.dockerCfgPath=${user.home}/.dockercfg docker.io.username=${user.name} diff --git a/src/test/java/com/github/dockerjava/core/DockerClientConfigTest.java b/src/test/java/com/github/dockerjava/core/DockerClientConfigTest.java index 64ab912d0..84128624f 100644 --- a/src/test/java/com/github/dockerjava/core/DockerClientConfigTest.java +++ b/src/test/java/com/github/dockerjava/core/DockerClientConfigTest.java @@ -16,13 +16,13 @@ public class DockerClientConfigTest { public static final DockerClientConfig EXAMPLE_CONFIG = newExampleConfig(); private static DockerClientConfig newExampleConfig() { - return new DockerClientConfig(URI.create("http://foo"), "bar", "baz", "qux", "blam", "wham", "flam", 877, false, false, new LocalDirectorySSLConfig("flim"), 20, 2); + return new DockerClientConfig(URI.create("http://foo"), "bar", "baz", "qux", "blam", "wham", "flam", false, new LocalDirectorySSLConfig("flim")); } @Test public void string() throws Exception { - assertEquals("DockerClientConfig{uri=http://foo, version='bar', username='baz', password='qux', email='blam', serverAddress='wham', dockerCfgPath='flam', sslConfig='LocalDirectorySSLConfig{dockerCertPath=flim}', readTimeout=877, loggingFilterEnabled=false, followRedirectsFilterEnabled=false}", - EXAMPLE_CONFIG.toString()); + assertEquals(EXAMPLE_CONFIG.toString(), "DockerClientConfig{uri=http://foo, version='bar', username='baz', password='qux', email='blam', serverAddress='wham', dockerCfgPath='flam', sslConfig='LocalDirectorySSLConfig{dockerCertPath=flim}', loggingEnabled=false}" + ); } @Test @@ -127,8 +127,7 @@ public void environment() throws Exception { env.put("DOCKER_SERVER_ADDRESS", "wham"); env.put("DOCKER_CERT_PATH", "flim"); env.put("DOCKER_CFG_PATH", "flam"); - env.put("DOCKER_READ_TIMEOUT", "877"); - env.put("DOCKER_LOGGING_FILTER_ENABLED", "false"); + env.put("DOCKER_LOGGING_ENABLED", "false"); // when you build a config DockerClientConfig config = buildConfig(env, new Properties()); @@ -157,7 +156,6 @@ public void defaults() throws Exception { assertEquals(config.getUsername(), "someUserName"); assertEquals(config.getServerAddress(), AuthConfig.DEFAULT_SERVER_ADDRESS); assertEquals(config.getVersion(), null); - assertEquals(config.isLoggingFilterEnabled(), true); assertEquals(config.getDockerCfgPath(), "someHomeDir/.dockercfg"); assertEquals( ((LocalDirectorySSLConfig)config.getSslConfig()).getDockerCertPath(), "someHomeDir/.docker"); } @@ -175,12 +173,13 @@ public void systemProperties() throws Exception { systemProperties.setProperty("docker.io.serverAddress", "wham"); systemProperties.setProperty("docker.io.dockerCertPath", "flim"); systemProperties.setProperty("docker.io.dockerCfgPath", "flam"); - systemProperties.setProperty("docker.io.readTimeout", "877"); - systemProperties.setProperty("docker.io.enableLoggingFilter", "false"); + systemProperties.setProperty("docker.io.enableLogging", "false"); // when you build new config DockerClientConfig config = buildConfig(Collections.emptyMap(), systemProperties); + System.out.println("config: " + config); + // then it is the same as the example assertEquals(config, EXAMPLE_CONFIG); diff --git a/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java b/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java index 2a961e3b8..e20b6cc80 100644 --- a/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java +++ b/src/test/java/com/github/dockerjava/core/DockerClientImplTest.java @@ -10,7 +10,7 @@ public class DockerClientImplTest { @Test public void configuredInstanceAuthConfig() throws Exception { // given a config with null serverAddress - DockerClientConfig dockerClientConfig = new DockerClientConfig(null, null, "", "", "", null, null, 0, false, false, null, 20, 2); + DockerClientConfig dockerClientConfig = new DockerClientConfig(null, null, "", "", "", null, null, false, null); DockerClientImpl dockerClient = DockerClientImpl.getInstance(dockerClientConfig); // when we get the auth config diff --git a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java index 869a12fcf..d8f1ff14b 100644 --- a/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java +++ b/src/test/java/com/github/dockerjava/core/TestDockerCmdExecFactory.java @@ -25,14 +25,23 @@ public class TestDockerCmdExecFactory implements DockerCmdExecFactory { private List imageNames = new ArrayList(); private DockerCmdExecFactory delegate; + + private DockerClientConfig dockerClientConfig; public TestDockerCmdExecFactory(DockerCmdExecFactory delegate) { this.delegate = delegate; } + + @Override + public DockerCmdExecFactory withDockerClientConfig( + DockerClientConfig dockerClientConfig) { + this.dockerClientConfig = dockerClientConfig; + return this; + } @Override - public void init(DockerClientConfig dockerClientConfig) { - delegate.init(dockerClientConfig); + public void init() { + delegate.withDockerClientConfig(dockerClientConfig).init(); } @Override diff --git a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java index c652f51d7..b3a9a25be 100644 --- a/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java +++ b/src/test/java/com/github/dockerjava/core/command/CreateContainerCmdImplTest.java @@ -410,6 +410,7 @@ public void createContainerWithPortBindings() throws DockerException { } + @Test public void createContainerWithLinking() throws DockerException { diff --git a/src/test/java/com/github/dockerjava/core/command/DockerfileFixture.java b/src/test/java/com/github/dockerjava/core/command/DockerfileFixture.java index 53131c611..f70954cc0 100644 --- a/src/test/java/com/github/dockerjava/core/command/DockerfileFixture.java +++ b/src/test/java/com/github/dockerjava/core/command/DockerfileFixture.java @@ -59,11 +59,11 @@ public void open() throws IOException { .exec() .getId(); - LOGGER.info("starting {}", containerId); + // LOGGER.info("starting {}", containerId); - dockerClient - .startContainerCmd(containerId) - .exec(); +// dockerClient +// .startContainerCmd(containerId) +// .exec(); } @Override diff --git a/src/test/java/com/github/dockerjava/core/command/FrameReaderITest.java b/src/test/java/com/github/dockerjava/core/command/FrameReaderITest.java index 24c833559..6e79d413e 100644 --- a/src/test/java/com/github/dockerjava/core/command/FrameReaderITest.java +++ b/src/test/java/com/github/dockerjava/core/command/FrameReaderITest.java @@ -37,13 +37,15 @@ public void deleteDockerContainerImage() throws Exception { @Test public void canCloseFrameReaderAndReadExpectedLines() throws Exception { + InputStream response = getLoggerStream(); + + dockerClient.startContainerCmd(dockerfileFixture.getContainerId()) + .exec(); - // wait for the container to be successfully executed + // wait for the container to be successfully executed int exitCode = dockerClient.waitContainerCmd( dockerfileFixture.getContainerId()).exec(); assertEquals(0, exitCode); - - InputStream response = getLoggerStream(); try (FrameReader reader = new FrameReader(response)) { assertEquals(reader.readFrame(), new Frame(StreamType.STDOUT, @@ -57,11 +59,10 @@ public void canCloseFrameReaderAndReadExpectedLines() throws Exception { private InputStream getLoggerStream() { return dockerClient.logContainerCmd(dockerfileFixture.getContainerId()) - .withStdOut() - .withStdErr() - .withTailAll() - // we can't follow stream here as it blocks reading from resulting InputStream infinitely - //.withFollowStream() + .withStdOut().withStdErr().withTailAll() + // we can't follow stream here as it blocks reading from + // resulting InputStream infinitely + // .withFollowStream() .exec(); } diff --git a/src/test/resources/frameReaderDockerfile/Dockerfile b/src/test/resources/frameReaderDockerfile/Dockerfile index 9aa6b9847..c4d74fc55 100644 --- a/src/test/resources/frameReaderDockerfile/Dockerfile +++ b/src/test/resources/frameReaderDockerfile/Dockerfile @@ -5,7 +5,6 @@ FROM busybox:latest RUN echo '#! /bin/sh' > cmd.sh RUN echo 'echo "to stdout"' >> cmd.sh RUN echo 'echo "to stderr" > /dev/stderr' >> cmd.sh -RUN echo 'sleep 1' >> cmd.sh RUN chmod +x cmd.sh CMD ["./cmd.sh"] \ No newline at end of file