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.core5.testing.nio;
29
30 import org.apache.hc.core5.http.URIScheme;
31 import org.apache.hc.core5.reactor.IOReactorConfig;
32 import org.apache.hc.core5.testing.SSLTestContexts;
33 import org.apache.hc.core5.util.TimeValue;
34 import org.junit.Rule;
35 import org.junit.rules.ExternalResource;
36 import org.slf4j.Logger;
37 import org.slf4j.LoggerFactory;
38
39 public abstract class InternalHttp1ServerTestBase {
40
41 private final Logger log = LoggerFactory.getLogger(getClass());
42
43 protected final URIScheme scheme;
44
45 public InternalHttp1ServerTestBase(final URIScheme scheme) {
46 this.scheme = scheme;
47 }
48
49 public InternalHttp1ServerTestBase() {
50 this(URIScheme.HTTP);
51 }
52
53 protected Http1TestServer server;
54
55 @Rule
56 public ExternalResource serverResource = new ExternalResource() {
57
58 @Override
59 protected void before() throws Throwable {
60 log.debug("Starting up test server");
61 server = new Http1TestServer(
62 IOReactorConfig.DEFAULT,
63 scheme == URIScheme.HTTPS ? SSLTestContexts.createServerSSLContext() : null, null, null);
64 }
65
66 @Override
67 protected void after() {
68 log.debug("Shutting down test server");
69 if (server != null) {
70 server.shutdown(TimeValue.ofSeconds(5));
71 }
72 }
73
74 };
75
76 }