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 package org.apache.hc.core5.testing.nio;
28
29 import java.io.IOException;
30
31 import org.apache.hc.core5.http.EntityDetails;
32 import org.apache.hc.core5.http.HttpException;
33 import org.apache.hc.core5.http.HttpRequest;
34 import org.apache.hc.core5.http.HttpStatus;
35 import org.apache.hc.core5.http.Message;
36 import org.apache.hc.core5.http.nio.AsyncRequestConsumer;
37 import org.apache.hc.core5.http.nio.AsyncServerRequestHandler;
38 import org.apache.hc.core5.http.nio.entity.StringAsyncEntityConsumer;
39 import org.apache.hc.core5.http.nio.support.AsyncResponseBuilder;
40 import org.apache.hc.core5.http.nio.support.BasicRequestConsumer;
41 import org.apache.hc.core5.http.nio.support.BasicServerExchangeHandler;
42 import org.apache.hc.core5.http.protocol.HttpContext;
43
44 public class SingleLineResponseHandler extends BasicServerExchangeHandler<Message<HttpRequest, String>> {
45
46 public SingleLineResponseHandler(final String message) {
47 super(new AsyncServerRequestHandler<Message<HttpRequest, String>>() {
48
49 @Override
50 public AsyncRequestConsumer<Message<HttpRequest, String>> prepare(
51 final HttpRequest request,
52 final EntityDetails entityDetails,
53 final HttpContext context) throws HttpException {
54 return new BasicRequestConsumer<>(entityDetails != null? new StringAsyncEntityConsumer() : null);
55 }
56
57 @Override
58 public void handle(
59 final Message<HttpRequest, String> requestMessage,
60 final ResponseTrigger responseTrigger,
61 final HttpContext context) throws HttpException, IOException {
62 responseTrigger.submitResponse(
63 AsyncResponseBuilder.create(HttpStatus.SC_OK)
64 .setEntity(message)
65 .build(),
66 context);
67 }
68 }
69 );
70 }
71
72 }