From 40444b769a36f92ce0b15c34223511c3afcfe7c3 Mon Sep 17 00:00:00 2001 From: David Nadoba <d_nadoba@apple.com> Date: Wed, 29 Sep 2021 17:04:22 +0200 Subject: [PATCH 1/2] remove umbrella `NIO` imports and add soundness check --- README.md | 2 +- .../ConnectionPool/HTTPConnectionPool+Manager.swift | 2 +- .../HTTPConnectionPool+HTTP1StateMachine.swift | 2 +- .../State Machine/HTTPConnectionPool+StateMachine.swift | 2 +- .../HTTPConnectionPool+HTTP1StateTests.swift | 4 +++- .../HTTPConnectionPool+ManagerTests.swift | 3 ++- .../AsyncHTTPClientTests/Mocks/MockConnectionPool.swift | 2 +- Tests/AsyncHTTPClientTests/Mocks/MockRequestQueuer.swift | 2 +- scripts/soundness.sh | 9 +++++++++ 9 files changed, 20 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 1966b958a..94f700004 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ httpClient.execute(request: request, deadline: .now() + .milliseconds(1)) ### Streaming When dealing with larger amount of data, it's critical to stream the response body instead of aggregating in-memory. Handling a response stream is done using a delegate protocol. The following example demonstrates how to count the number of bytes in a streaming response body: ```swift -import NIO +import NIOCore import NIOHTTP1 class CountingDelegate: HTTPClientResponseDelegate { diff --git a/Sources/AsyncHTTPClient/ConnectionPool/HTTPConnectionPool+Manager.swift b/Sources/AsyncHTTPClient/ConnectionPool/HTTPConnectionPool+Manager.swift index 0cbfbb3c0..f333d5366 100644 --- a/Sources/AsyncHTTPClient/ConnectionPool/HTTPConnectionPool+Manager.swift +++ b/Sources/AsyncHTTPClient/ConnectionPool/HTTPConnectionPool+Manager.swift @@ -13,7 +13,7 @@ //===----------------------------------------------------------------------===// import Logging -import NIO +import NIOCore import NIOConcurrencyHelpers import NIOHTTP1 diff --git a/Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+HTTP1StateMachine.swift b/Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+HTTP1StateMachine.swift index f73521bfb..e3f5d4abf 100644 --- a/Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+HTTP1StateMachine.swift +++ b/Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+HTTP1StateMachine.swift @@ -12,7 +12,7 @@ // //===----------------------------------------------------------------------===// -import NIO +import NIOCore extension HTTPConnectionPool { struct HTTP1StateMachine { diff --git a/Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+StateMachine.swift b/Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+StateMachine.swift index b2b79c8df..db2e2e588 100644 --- a/Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+StateMachine.swift +++ b/Sources/AsyncHTTPClient/ConnectionPool/State Machine/HTTPConnectionPool+StateMachine.swift @@ -12,7 +12,7 @@ // //===----------------------------------------------------------------------===// -import NIO +import NIOCore import NIOHTTP1 extension HTTPConnectionPool { diff --git a/Tests/AsyncHTTPClientTests/HTTPConnectionPool+HTTP1StateTests.swift b/Tests/AsyncHTTPClientTests/HTTPConnectionPool+HTTP1StateTests.swift index 864e895e7..c9b86d099 100644 --- a/Tests/AsyncHTTPClientTests/HTTPConnectionPool+HTTP1StateTests.swift +++ b/Tests/AsyncHTTPClientTests/HTTPConnectionPool+HTTP1StateTests.swift @@ -13,7 +13,9 @@ //===----------------------------------------------------------------------===// @testable import AsyncHTTPClient -import NIO +import NIOCore +import NIOPosix +import NIOEmbedded import NIOHTTP1 import XCTest diff --git a/Tests/AsyncHTTPClientTests/HTTPConnectionPool+ManagerTests.swift b/Tests/AsyncHTTPClientTests/HTTPConnectionPool+ManagerTests.swift index 10f5d92d0..2373df86b 100644 --- a/Tests/AsyncHTTPClientTests/HTTPConnectionPool+ManagerTests.swift +++ b/Tests/AsyncHTTPClientTests/HTTPConnectionPool+ManagerTests.swift @@ -13,7 +13,8 @@ //===----------------------------------------------------------------------===// @testable import AsyncHTTPClient -import NIO +import NIOCore +import NIOPosix import NIOHTTP1 import XCTest diff --git a/Tests/AsyncHTTPClientTests/Mocks/MockConnectionPool.swift b/Tests/AsyncHTTPClientTests/Mocks/MockConnectionPool.swift index 9365dd67a..513cb42b6 100644 --- a/Tests/AsyncHTTPClientTests/Mocks/MockConnectionPool.swift +++ b/Tests/AsyncHTTPClientTests/Mocks/MockConnectionPool.swift @@ -14,7 +14,7 @@ @testable import AsyncHTTPClient import Logging -import NIO +import NIOCore import NIOHTTP1 import NIOSSL diff --git a/Tests/AsyncHTTPClientTests/Mocks/MockRequestQueuer.swift b/Tests/AsyncHTTPClientTests/Mocks/MockRequestQueuer.swift index eb4cd1997..e81f1ed0a 100644 --- a/Tests/AsyncHTTPClientTests/Mocks/MockRequestQueuer.swift +++ b/Tests/AsyncHTTPClientTests/Mocks/MockRequestQueuer.swift @@ -14,7 +14,7 @@ @testable import AsyncHTTPClient import Logging -import NIO +import NIOCore import NIOHTTP1 /// A mock request queue (not creating any timers) that is used to validate diff --git a/scripts/soundness.sh b/scripts/soundness.sh index 0e0c5221c..6cf525618 100755 --- a/scripts/soundness.sh +++ b/scripts/soundness.sh @@ -153,3 +153,12 @@ EOF done rm "$tmp" + +# This checks for the umbrella NIO module. +printf "=> Checking for imports of umbrella NIO module... " +if git grep --color=never -i "^[ \t]*import \+NIO[ \t]*$" > /dev/null; then + printf "\033[0;31mUmbrella imports found.\033[0m\n" + git grep -i "^[ \t]*import \+NIO[ \t]*$" + exit 1 +fi +printf "\033[0;32mokay.\033[0m\n" From 5f5b272ebe56a8d907fc8f7523069e8f2ad7b221 Mon Sep 17 00:00:00 2001 From: David Nadoba <d_nadoba@apple.com> Date: Wed, 29 Sep 2021 17:12:18 +0200 Subject: [PATCH 2/2] fix formating --- .../ConnectionPool/HTTPConnectionPool+Manager.swift | 2 +- .../HTTPConnectionPool+HTTP1StateTests.swift | 2 +- .../AsyncHTTPClientTests/HTTPConnectionPool+ManagerTests.swift | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/AsyncHTTPClient/ConnectionPool/HTTPConnectionPool+Manager.swift b/Sources/AsyncHTTPClient/ConnectionPool/HTTPConnectionPool+Manager.swift index f333d5366..1a1760908 100644 --- a/Sources/AsyncHTTPClient/ConnectionPool/HTTPConnectionPool+Manager.swift +++ b/Sources/AsyncHTTPClient/ConnectionPool/HTTPConnectionPool+Manager.swift @@ -13,8 +13,8 @@ //===----------------------------------------------------------------------===// import Logging -import NIOCore import NIOConcurrencyHelpers +import NIOCore import NIOHTTP1 extension HTTPConnectionPool { diff --git a/Tests/AsyncHTTPClientTests/HTTPConnectionPool+HTTP1StateTests.swift b/Tests/AsyncHTTPClientTests/HTTPConnectionPool+HTTP1StateTests.swift index c9b86d099..b65f2b666 100644 --- a/Tests/AsyncHTTPClientTests/HTTPConnectionPool+HTTP1StateTests.swift +++ b/Tests/AsyncHTTPClientTests/HTTPConnectionPool+HTTP1StateTests.swift @@ -14,9 +14,9 @@ @testable import AsyncHTTPClient import NIOCore -import NIOPosix import NIOEmbedded import NIOHTTP1 +import NIOPosix import XCTest class HTTPConnectionPool_HTTP1StateMachineTests: XCTestCase { diff --git a/Tests/AsyncHTTPClientTests/HTTPConnectionPool+ManagerTests.swift b/Tests/AsyncHTTPClientTests/HTTPConnectionPool+ManagerTests.swift index 2373df86b..d84e7f442 100644 --- a/Tests/AsyncHTTPClientTests/HTTPConnectionPool+ManagerTests.swift +++ b/Tests/AsyncHTTPClientTests/HTTPConnectionPool+ManagerTests.swift @@ -14,8 +14,8 @@ @testable import AsyncHTTPClient import NIOCore -import NIOPosix import NIOHTTP1 +import NIOPosix import XCTest class HTTPConnectionPool_ManagerTests: XCTestCase {