From cee2a48dd040fca3eb8c10f746e8abe034d51952 Mon Sep 17 00:00:00 2001 From: Artem Redkin Date: Thu, 30 Jul 2020 11:29:31 +0100 Subject: [PATCH 1/2] rename connection pool configuration --- Sources/AsyncHTTPClient/ConnectionPool.swift | 4 ++-- Sources/AsyncHTTPClient/HTTPClient.swift | 16 ++++++++-------- Tests/AsyncHTTPClientTests/HTTPClientTests.swift | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Sources/AsyncHTTPClient/ConnectionPool.swift b/Sources/AsyncHTTPClient/ConnectionPool.swift index 1d04a24b7..8560ad47a 100644 --- a/Sources/AsyncHTTPClient/ConnectionPool.swift +++ b/Sources/AsyncHTTPClient/ConnectionPool.swift @@ -353,7 +353,7 @@ class HTTP1ConnectionProvider { case .park(let connection): logger.trace("parking connection", metadata: ["ahc-connection": "\(connection)"]) - connection.setIdleTimeout(timeout: self.configuration.poolConfiguration.idleTimeout, + connection.setIdleTimeout(timeout: self.configuration.connectionPool.idleTimeout, logger: self.backgroundActivityLogger) case .closeProvider: logger.debug("closing provider", @@ -365,7 +365,7 @@ class HTTP1ConnectionProvider { logger.trace("parking connection & doing further action", metadata: ["ahc-connection": "\(connection)", "ahc-action": "\(action)"]) - connection.setIdleTimeout(timeout: self.configuration.poolConfiguration.idleTimeout, + connection.setIdleTimeout(timeout: self.configuration.connectionPool.idleTimeout, logger: self.backgroundActivityLogger) self.execute(action, logger: logger) case .closeAnd(let connection, let action): diff --git a/Sources/AsyncHTTPClient/HTTPClient.swift b/Sources/AsyncHTTPClient/HTTPClient.swift index 387183c8f..775254928 100644 --- a/Sources/AsyncHTTPClient/HTTPClient.swift +++ b/Sources/AsyncHTTPClient/HTTPClient.swift @@ -642,7 +642,7 @@ public class HTTPClient { /// Default client timeout, defaults to no timeouts. public var timeout: Timeout /// Connection pool configuration. - public var poolConfiguration: PoolConfiguration + public var connectionPool: ConnectionPool /// Upstream proxy, defaults to no proxy. public var proxy: Proxy? /// Enables automatic body decompression. Supported algorithms are gzip and deflate. @@ -653,14 +653,14 @@ public class HTTPClient { public init(tlsConfiguration: TLSConfiguration? = nil, redirectConfiguration: RedirectConfiguration? = nil, timeout: Timeout = Timeout(), - poolConfiguration: PoolConfiguration = PoolConfiguration(), + connectionPool: ConnectionPool = ConnectionPool(), proxy: Proxy? = nil, ignoreUncleanSSLShutdown: Bool = false, decompression: Decompression = .disabled) { self.tlsConfiguration = tlsConfiguration self.redirectConfiguration = redirectConfiguration ?? RedirectConfiguration() self.timeout = timeout - self.poolConfiguration = poolConfiguration + self.connectionPool = connectionPool self.proxy = proxy self.ignoreUncleanSSLShutdown = ignoreUncleanSSLShutdown self.decompression = decompression @@ -676,7 +676,7 @@ public class HTTPClient { tlsConfiguration: tlsConfiguration, redirectConfiguration: redirectConfiguration, timeout: timeout, - poolConfiguration: PoolConfiguration(), + connectionPool: ConnectionPool(), proxy: proxy, ignoreUncleanSSLShutdown: ignoreUncleanSSLShutdown, decompression: decompression @@ -693,7 +693,7 @@ public class HTTPClient { self.init(tlsConfiguration: TLSConfiguration.forClient(certificateVerification: certificateVerification), redirectConfiguration: redirectConfiguration, timeout: timeout, - poolConfiguration: PoolConfiguration(), + connectionPool: ConnectionPool(), proxy: proxy, ignoreUncleanSSLShutdown: ignoreUncleanSSLShutdown, decompression: decompression) @@ -702,7 +702,7 @@ public class HTTPClient { public init(certificateVerification: CertificateVerification, redirectConfiguration: RedirectConfiguration? = nil, timeout: Timeout = Timeout(), - poolConfiguration: TimeAmount = .seconds(60), + connectionPool: TimeAmount = .seconds(60), proxy: Proxy? = nil, ignoreUncleanSSLShutdown: Bool = false, decompression: Decompression = .disabled, @@ -710,7 +710,7 @@ public class HTTPClient { self.init(tlsConfiguration: TLSConfiguration.forClient(certificateVerification: certificateVerification), redirectConfiguration: redirectConfiguration, timeout: timeout, - poolConfiguration: PoolConfiguration(), + connectionPool: ConnectionPool(), proxy: proxy, ignoreUncleanSSLShutdown: ignoreUncleanSSLShutdown, decompression: decompression) @@ -862,7 +862,7 @@ extension HTTPClient.Configuration { } /// Connection pool configuration. - public struct PoolConfiguration: Hashable { + public struct ConnectionPool: Hashable { // Specifies amount of time connections are kept idle in the pool. public var idleTimeout: TimeAmount diff --git a/Tests/AsyncHTTPClientTests/HTTPClientTests.swift b/Tests/AsyncHTTPClientTests/HTTPClientTests.swift index 63441c08a..04287ef0d 100644 --- a/Tests/AsyncHTTPClientTests/HTTPClientTests.swift +++ b/Tests/AsyncHTTPClientTests/HTTPClientTests.swift @@ -1742,7 +1742,7 @@ class HTTPClientTests: XCTestCase { func testPoolClosesIdleConnections() { let localClient = HTTPClient(eventLoopGroupProvider: .shared(self.clientGroup), - configuration: .init(poolConfiguration: .init(idleTimeout: .milliseconds(100)))) + configuration: .init(connectionPool: .init(idleTimeout: .milliseconds(100)))) defer { XCTAssertNoThrow(try localClient.syncShutdown()) } @@ -1753,7 +1753,7 @@ class HTTPClientTests: XCTestCase { func testRacePoolIdleConnectionsAndGet() { let localClient = HTTPClient(eventLoopGroupProvider: .shared(self.clientGroup), - configuration: .init(poolConfiguration: .init(idleTimeout: .milliseconds(10)))) + configuration: .init(connectionPool: .init(idleTimeout: .milliseconds(10)))) defer { XCTAssertNoThrow(try localClient.syncShutdown()) } From 678a503acfb41c788c14082a0adc65fa9b0a1912 Mon Sep 17 00:00:00 2001 From: Artem Redkin Date: Fri, 31 Jul 2020 09:52:21 +0100 Subject: [PATCH 2/2] fix CI --- docker/Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 984698515..27ab61bd6 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -18,7 +18,8 @@ RUN apt-get update && apt-get install -y lsof dnsutils netcat-openbsd net-tools # ruby and jazzy for docs generation RUN apt-get update && apt-get install -y ruby ruby-dev libsqlite3-dev -RUN gem install jazzy --no-ri --no-rdoc +# jazzy no longer works on xenial as ruby is too old. +RUN if [ "${ubuntu_version}" != "xenial" ] ; then gem install jazzy --no-ri --no-rdoc ; fi # tools RUN mkdir -p $HOME/.tools