Skip to content

Commit 23e22cf

Browse files
authored
Use ReadiumGCDWebServer* symbols (#404)
1 parent 6365bb9 commit 23e22cf

File tree

5 files changed

+40
-40
lines changed

5 files changed

+40
-40
lines changed

Package.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ let package = Package(
2727
.package(url: "https://github.com/krzyzanowskim/CryptoSwift.git", "1.5.1" ..< "1.6.0"),
2828
.package(url: "https://github.com/marmelroy/Zip.git", from: "2.1.2"),
2929
.package(url: "https://github.com/ra1028/DifferenceKit.git", from: "1.3.0"),
30-
.package(url: "https://github.com/readium/GCDWebServer.git", from: "3.7.4"),
30+
.package(url: "https://github.com/readium/GCDWebServer.git", from: "4.0.0"),
3131
// From 2.6.0, Xcode 14 is required
3232
.package(url: "https://github.com/scinfu/SwiftSoup.git", "2.5.3" ..< "2.6.0"),
3333
// 0.14 introduced a breaking change
@@ -66,7 +66,7 @@ let package = Package(
6666
dependencies: [
6767
"CryptoSwift",
6868
"Fuzi",
69-
"GCDWebServer",
69+
.product(name: "ReadiumGCDWebServer", package: "GCDWebServer"),
7070
"Zip",
7171
"R2Shared",
7272
],
@@ -151,7 +151,7 @@ let package = Package(
151151
.target(
152152
name: "ReadiumAdapterGCDWebServer",
153153
dependencies: [
154-
"GCDWebServer",
154+
.product(name: "ReadiumGCDWebServer", package: "GCDWebServer"),
155155
"R2Shared",
156156
],
157157
path: "Sources/Adapters/GCDWebServer"

Sources/Adapters/GCDWebServer/GCDHTTPServer.swift

+13-13
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
//
66

77
import Foundation
8-
import GCDWebServer
98
import R2Shared
9+
import ReadiumGCDWebServer
1010
import UIKit
1111

1212
public enum GCDHTTPServerError: Error {
@@ -15,13 +15,13 @@ public enum GCDHTTPServerError: Error {
1515
case nullServerURL
1616
}
1717

18-
/// Implementation of `HTTPServer` using GCDWebServer under the hood.
18+
/// Implementation of `HTTPServer` using ReadiumGCDWebServer under the hood.
1919
public class GCDHTTPServer: HTTPServer, Loggable {
2020
/// Shared instance of the HTTP server.
2121
public static let shared = GCDHTTPServer()
2222

2323
/// The actual underlying HTTP server instance.
24-
private let server = GCDWebServer()
24+
private let server = ReadiumGCDWebServer()
2525

2626
/// Mapping between endpoints and their handlers.
2727
private var handlers: [HTTPServerEndpoint: (HTTPServerRequest) -> Resource] = [:]
@@ -45,15 +45,15 @@ public class GCDHTTPServer: HTTPServer, Loggable {
4545

4646
/// Creates a new instance of the HTTP server.
4747
///
48-
/// - Parameter logLevel: See `GCDWebServer.setLogLevel`.
48+
/// - Parameter logLevel: See `ReadiumGCDWebServer.setLogLevel`.
4949
public init(logLevel: Int = 3) {
50-
GCDWebServer.setLogLevel(Int32(logLevel))
50+
ReadiumGCDWebServer.setLogLevel(Int32(logLevel))
5151

5252
NotificationCenter.default.addObserver(self, selector: #selector(willEnterForeground), name: UIApplication.willEnterForegroundNotification, object: nil)
5353

5454
server.addDefaultHandler(
5555
forMethod: "GET",
56-
request: GCDWebServerRequest.self,
56+
request: ReadiumGCDWebServerRequest.self,
5757
asyncProcessBlock: { [weak self] request, completion in
5858
self?.handle(request: request, completion: completion)
5959
}
@@ -83,9 +83,9 @@ public class GCDHTTPServer: HTTPServer, Loggable {
8383
}
8484
}
8585

86-
private func handle(request: GCDWebServerRequest, completion: @escaping GCDWebServerCompletionBlock) {
86+
private func handle(request: ReadiumGCDWebServerRequest, completion: @escaping ReadiumGCDWebServerCompletionBlock) {
8787
responseResource(for: request) { resource in
88-
let response: GCDWebServerResponse
88+
let response: ReadiumGCDWebServerResponse
8989
switch resource.length {
9090
case let .success(length):
9191
response = ResourceResponse(
@@ -95,14 +95,14 @@ public class GCDHTTPServer: HTTPServer, Loggable {
9595
)
9696
case let .failure(error):
9797
self.log(.error, error)
98-
response = GCDWebServerErrorResponse(statusCode: error.httpStatusCode)
98+
response = ReadiumGCDWebServerErrorResponse(statusCode: error.httpStatusCode)
9999
}
100100

101101
completion(response)
102102
}
103103
}
104104

105-
private func responseResource(for request: GCDWebServerRequest, completion: @escaping (Resource) -> Void) {
105+
private func responseResource(for request: ReadiumGCDWebServerRequest, completion: @escaping (Resource) -> Void) {
106106
let completion = { resource in
107107
// Escape the queue to avoid deadlocks if something is using the
108108
// server in the handler.
@@ -219,12 +219,12 @@ public class GCDHTTPServer: HTTPServer, Loggable {
219219

220220
do {
221221
try server.start(options: [
222-
GCDWebServerOption_Port: port,
223-
GCDWebServerOption_BindToLocalhost: true,
222+
ReadiumGCDWebServerOption_Port: port,
223+
ReadiumGCDWebServerOption_BindToLocalhost: true,
224224
// We disable automatically suspending the server in the
225225
// background, to be able to play audiobooks even with the
226226
// screen locked.
227-
GCDWebServerOption_AutomaticallySuspendInBackground: false,
227+
ReadiumGCDWebServerOption_AutomaticallySuspendInBackground: false,
228228
])
229229
} catch {
230230
throw GCDHTTPServerError.failedToStartServer(cause: error)

Sources/Adapters/GCDWebServer/ResourceResponse.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
//
66

77
import Foundation
8-
import GCDWebServer
98
import R2Shared
9+
import ReadiumGCDWebServer
1010

1111
/// Errors thrown by the `WebServerResourceResponse`
1212
///
@@ -19,7 +19,7 @@ enum WebServerResponseError: Error {
1919

2020
/// The object containing the response's ressource data.
2121
/// If the ressource to be served is too big, multiple responses will be created.
22-
class ResourceResponse: GCDWebServerFileResponse, Loggable {
22+
class ResourceResponse: ReadiumGCDWebServerFileResponse, Loggable {
2323
private let bufferSize = 32 * 1024
2424

2525
private var resource: Resource

Sources/Streamer/Server/PublicationServer.swift

+19-19
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
//
66

77
import Foundation
8-
import GCDWebServer
98
import R2Shared
9+
import ReadiumGCDWebServer
1010
import UIKit
1111

1212
/// Errors thrown by the `PublicationServer`.
@@ -26,7 +26,7 @@ public enum PublicationServerError: Error {
2626
@available(*, deprecated, message: "See the 2.5.0 migration guide to migrate the HTTP server")
2727
public class PublicationServer: ResourcesServer, Loggable {
2828
/// The HTTP server.
29-
var webServer: GCDWebServer
29+
var webServer: ReadiumGCDWebServer
3030

3131
// Mapping between endpoint and the matching publication.
3232
public private(set) var publications: [String: Publication] = [:]
@@ -46,11 +46,11 @@ public class PublicationServer: ResourcesServer, Loggable {
4646

4747
public init?() {
4848
#if DEBUG
49-
GCDWebServer.setLogLevel(2)
49+
ReadiumGCDWebServer.setLogLevel(2)
5050
#else
51-
GCDWebServer.setLogLevel(3)
51+
ReadiumGCDWebServer.setLogLevel(3)
5252
#endif
53-
webServer = GCDWebServer()
53+
webServer = ReadiumGCDWebServer()
5454
if startWebServer() == false {
5555
return nil
5656
}
@@ -100,11 +100,11 @@ public class PublicationServer: ResourcesServer, Loggable {
100100
// Check if it's supported by WKWebView first.
101101
webServer.stop()
102102
try webServer.start(options: [
103-
GCDWebServerOption_Port: port,
104-
GCDWebServerOption_BindToLocalhost: true,
103+
ReadiumGCDWebServerOption_Port: port,
104+
ReadiumGCDWebServerOption_BindToLocalhost: true,
105105
// We disable automatically suspending the server in the background, to be able to play
106106
// audiobooks even with the screen locked.
107-
GCDWebServerOption_AutomaticallySuspendInBackground: false,
107+
ReadiumGCDWebServerOption_AutomaticallySuspendInBackground: false,
108108
])
109109
}
110110

@@ -208,11 +208,11 @@ public class PublicationServer: ResourcesServer, Loggable {
208208
webServer.addHandler(
209209
forMethod: "GET",
210210
pathRegex: "/\(endpoint)/.*",
211-
request: GCDWebServerRequest.self,
211+
request: ReadiumGCDWebServerRequest.self,
212212
processBlock: { [weak self, weak publication] request in
213213
guard let publication = publication else {
214214
self?.log(.error, "The publication was deallocated.")
215-
return GCDWebServerErrorResponse(statusCode: 500)
215+
return ReadiumGCDWebServerErrorResponse(statusCode: 500)
216216
}
217217

218218
// Remove the prefix from the URI.
@@ -237,17 +237,17 @@ public class PublicationServer: ResourcesServer, Loggable {
237237
webServer.addHandler(
238238
forMethod: "GET",
239239
pathRegex: "/\(endpoint)/manifest.json",
240-
request: GCDWebServerRequest.self,
240+
request: ReadiumGCDWebServerRequest.self,
241241
processBlock: { [weak self, weak publication] _ in
242242
guard let publication = publication else {
243243
self?.log(.error, "The publication was deallocated.")
244-
return GCDWebServerErrorResponse(statusCode: 500)
244+
return ReadiumGCDWebServerErrorResponse(statusCode: 500)
245245
}
246246
guard let manifestData = publication.jsonManifest?.data(using: .utf8) else {
247-
return GCDWebServerResponse(statusCode: 404)
247+
return ReadiumGCDWebServerResponse(statusCode: 404)
248248
}
249249
let type = "\(MediaType.readiumWebPubManifest.string); charset=utf-8"
250-
return GCDWebServerDataResponse(data: manifestData, contentType: type)
250+
return ReadiumGCDWebServerDataResponse(data: manifestData, contentType: type)
251251
}
252252
)
253253
}
@@ -314,7 +314,7 @@ public class PublicationServer: ResourcesServer, Loggable {
314314
webServer.addHandler(
315315
forMethod: "GET",
316316
pathRegex: "\(path)(/.*)?",
317-
request: GCDWebServerRequest.self,
317+
request: ReadiumGCDWebServerRequest.self,
318318
processBlock: resourceHandler
319319
)
320320
}
@@ -324,7 +324,7 @@ public class PublicationServer: ResourcesServer, Loggable {
324324
return baseURL.appendingPathComponent(String(path.dropFirst()))
325325
}
326326

327-
private func resourceHandler(_ request: GCDWebServerRequest?) -> GCDWebServerResponse? {
327+
private func resourceHandler(_ request: ReadiumGCDWebServerRequest?) -> ReadiumGCDWebServerResponse? {
328328
guard let request = request else {
329329
return nil
330330
}
@@ -333,13 +333,13 @@ public class PublicationServer: ResourcesServer, Loggable {
333333
guard let basePath = paths.first(where: { path.hasPrefix($0) }),
334334
var file = resources[basePath]
335335
else {
336-
return GCDWebServerResponse(statusCode: 404)
336+
return ReadiumGCDWebServerResponse(statusCode: 404)
337337
}
338338
path = String(path.dropFirst(basePath.count + 1))
339339
file.appendPathComponent(path)
340340

341341
guard let data = try? Data(contentsOf: file) else {
342-
return GCDWebServerResponse(statusCode: 404)
342+
return ReadiumGCDWebServerResponse(statusCode: 404)
343343
}
344344

345345
let contentType = MediaType.of(file)?.string
@@ -348,7 +348,7 @@ public class PublicationServer: ResourcesServer, Loggable {
348348
// log(.debug, "Serve resource `\(path)` (\(contentType))")
349349

350350
assert(file.pathExtension.lowercased() != "css" || contentType == "text/css")
351-
return GCDWebServerDataResponse(data: data, contentType: contentType)
351+
return ReadiumGCDWebServerDataResponse(data: data, contentType: contentType)
352352
}
353353

354354
@available(*, unavailable, message: "Passing a `Container` is not needed anymore")

Sources/Streamer/Server/WebServerResourceResponse.swift

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
//
66

77
import Foundation
8-
import GCDWebServer
98
import R2Shared
9+
import ReadiumGCDWebServer
1010

11-
extension GCDWebServerResponse: Loggable {}
11+
extension ReadiumGCDWebServerResponse: Loggable {}
1212

1313
/// Errors thrown by the `WebServerResourceResponse`
1414
///
@@ -22,7 +22,7 @@ public enum WebServerResponseError: Error {
2222
/// The object containing the response's ressource data.
2323
/// If the ressource to be served is too big, multiple responses will be created.
2424
@available(*, deprecated, message: "See the 2.5.0 migration guide to migrate the HTTP server")
25-
open class WebServerResourceResponse: GCDWebServerFileResponse {
25+
open class WebServerResourceResponse: ReadiumGCDWebServerFileResponse {
2626
private let bufferSize = 32 * 1024
2727

2828
private var resource: Resource

0 commit comments

Comments
 (0)