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 {