1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.client5.testing.extension.sync;
29
30 import java.io.IOException;
31 import java.net.InetSocketAddress;
32
33 import org.apache.hc.core5.function.Decorator;
34 import org.apache.hc.core5.http.config.Http1Config;
35 import org.apache.hc.core5.http.io.HttpServerRequestHandler;
36 import org.apache.hc.core5.http.protocol.HttpProcessor;
37 import org.apache.hc.core5.io.CloseMode;
38 import org.apache.hc.core5.testing.classic.ClassicTestServer;
39
40 public class TestServer {
41
42 private final ClassicTestServer server;
43 private final Http1Config http1Config;
44 private final HttpProcessor httpProcessor;
45 private final Decorator<HttpServerRequestHandler> exchangeHandlerDecorator;
46
47 TestServer(
48 final ClassicTestServer server,
49 final Http1Config http1Config,
50 final HttpProcessor httpProcessor,
51 final Decorator<HttpServerRequestHandler> exchangeHandlerDecorator) {
52 this.server = server;
53 this.http1Config = http1Config;
54 this.httpProcessor = httpProcessor;
55 this.exchangeHandlerDecorator = exchangeHandlerDecorator;
56 }
57
58 public void shutdown(final CloseMode closeMode) {
59 server.shutdown(closeMode);
60 }
61
62 public InetSocketAddress start() throws IOException {
63 server.configure(http1Config);
64 server.configure(exchangeHandlerDecorator);
65 server.configure(httpProcessor);
66 server.start();
67 return new InetSocketAddress(server.getInetAddress(), server.getPort());
68 }
69
70 }