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 InternalH2ServerTestBase {
40
41 private final Logger log = LoggerFactory.getLogger(getClass());
42
43 protected final URIScheme scheme;
44
45 public InternalH2ServerTestBase(final URIScheme scheme) {
46 this.scheme = scheme;
47 }
48
49 public InternalH2ServerTestBase() {
50 this(URIScheme.HTTP);
51 }
52
53 protected H2TestServer 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 H2TestServer(IOReactorConfig.DEFAULT,
62 scheme == URIScheme.HTTPS ? SSLTestContexts.createServerSSLContext() : null, null, null);
63 }
64
65 @Override
66 protected void after() {
67 log.debug("Shutting down test server");
68 if (server != null) {
69 server.shutdown(TimeValue.ofSeconds(5));
70 }
71 }
72
73 };
74
75 }