use of io.vertx.core.http.impl.headers.HeadersMultiMap in project java-chassis by ServiceComb.
the class ResponseHeaderItemTest method serverFormattedElementOnNotFound.
@Test
public void serverFormattedElementOnNotFound() {
HeadersMultiMap headers = new HeadersMultiMap();
String headerValue = "headerValue";
headers.add("anotherHeader", headerValue);
when(routingContext.response()).thenReturn(serverResponse);
when(serverResponse.headers()).thenReturn(headers);
ELEMENT.appendServerFormattedItem(accessLogEvent, strBuilder);
assertEquals("-", strBuilder.toString());
}
use of io.vertx.core.http.impl.headers.HeadersMultiMap in project incubator-servicecomb-java-chassis by apache.
the class RequestHeaderItemTest method serverFormattedElement.
@Test
public void serverFormattedElement() {
HeadersMultiMap headers = new HeadersMultiMap();
String testValue = "testValue";
headers.add(VAR_NAME, testValue);
when(routingContext.request()).thenReturn(serverRequest);
when(serverRequest.headers()).thenReturn(headers);
ELEMENT.appendServerFormattedItem(accessLogEvent, strBuilder);
assertEquals(testValue, strBuilder.toString());
assertEquals(ELEMENT.getVarName(), VAR_NAME);
}
use of io.vertx.core.http.impl.headers.HeadersMultiMap in project incubator-servicecomb-java-chassis by apache.
the class ResponseHeaderItemTest method serverFormattedElementOnNotFound.
@Test
public void serverFormattedElementOnNotFound() {
HeadersMultiMap headers = new HeadersMultiMap();
String headerValue = "headerValue";
headers.add("anotherHeader", headerValue);
when(routingContext.response()).thenReturn(serverResponse);
when(serverResponse.headers()).thenReturn(headers);
ELEMENT.appendServerFormattedItem(accessLogEvent, strBuilder);
assertEquals("-", strBuilder.toString());
}
use of io.vertx.core.http.impl.headers.HeadersMultiMap in project incubator-servicecomb-java-chassis by apache.
the class ResponseHeaderItemTest method serverFormattedElement.
@Test
public void serverFormattedElement() {
HeadersMultiMap headers = new HeadersMultiMap();
String headerValue = "headerValue";
headers.add(VAR_NAME, headerValue);
when(routingContext.response()).thenReturn(serverResponse);
when(serverResponse.headers()).thenReturn(headers);
ELEMENT.appendServerFormattedItem(accessLogEvent, strBuilder);
assertEquals(headerValue, strBuilder.toString());
assertEquals(ELEMENT.getVarName(), VAR_NAME);
}
use of io.vertx.core.http.impl.headers.HeadersMultiMap in project vert.x by eclipse.
the class HttpServerHandlerBenchmark method setup.
@Setup
public void setup() {
vertx = (VertxInternal) Vertx.vertx();
HttpServerOptions options = new HttpServerOptions();
vertxChannel = new EmbeddedChannel(new VertxHttpRequestDecoder(options), // We don't use the VertxHttpResponseDecoder because it will use the PartialPooledByteBufAllocator
new HttpResponseEncoder() {
@Override
protected void encodeHeaders(HttpHeaders headers, ByteBuf buf) {
((HeadersMultiMap) headers).encode(buf);
}
});
vertxChannel.config().setAllocator(new Alloc());
ContextInternal context = vertx.createEventLoopContext(vertxChannel.eventLoop(), null, Thread.currentThread().getContextClassLoader());
Handler<HttpServerRequest> app = request -> {
HttpServerResponse response = request.response();
MultiMap headers = response.headers();
headers.add(HEADER_CONTENT_TYPE, RESPONSE_TYPE_PLAIN).add(HEADER_SERVER, SERVER).add(HEADER_DATE, DATE_STRING).add(HEADER_CONTENT_LENGTH, HELLO_WORLD_LENGTH);
response.end(HELLO_WORLD_BUFFER);
};
VertxHandler<Http1xServerConnection> handler = VertxHandler.create(chctx -> {
Http1xServerConnection conn = new Http1xServerConnection(() -> context, null, new HttpServerOptions(), chctx, context, "localhost", null);
conn.handler(app);
return conn;
});
vertxChannel.pipeline().addLast("handler", handler);
nettyChannel = new EmbeddedChannel(new HttpRequestDecoder(options.getMaxInitialLineLength(), options.getMaxHeaderSize(), options.getMaxChunkSize(), false, options.getDecoderInitialBufferSize()), new HttpResponseEncoder(), new SimpleChannelInboundHandler<HttpRequest>() {
private final byte[] STATIC_PLAINTEXT = "Hello, World!".getBytes(CharsetUtil.UTF_8);
private final int STATIC_PLAINTEXT_LEN = STATIC_PLAINTEXT.length;
private final ByteBuf PLAINTEXT_CONTENT_BUFFER = Unpooled.unreleasableBuffer(Unpooled.directBuffer().writeBytes(STATIC_PLAINTEXT));
private final CharSequence PLAINTEXT_CLHEADER_VALUE = new AsciiString(String.valueOf(STATIC_PLAINTEXT_LEN));
private final CharSequence TYPE_PLAIN = new AsciiString("text/plain");
private final CharSequence SERVER_NAME = new AsciiString("Netty");
private final CharSequence CONTENT_TYPE_ENTITY = HttpHeaderNames.CONTENT_TYPE;
private final CharSequence DATE_ENTITY = HttpHeaderNames.DATE;
private final CharSequence CONTENT_LENGTH_ENTITY = HttpHeaderNames.CONTENT_LENGTH;
private final CharSequence SERVER_ENTITY = HttpHeaderNames.SERVER;
private final DateFormat FORMAT = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z");
private final CharSequence date = new AsciiString(FORMAT.format(new Date()));
@Override
protected void channelRead0(ChannelHandlerContext ctx, HttpRequest msg) throws Exception {
writeResponse(ctx, msg, PLAINTEXT_CONTENT_BUFFER.duplicate(), TYPE_PLAIN, PLAINTEXT_CLHEADER_VALUE);
}
@Override
public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
ctx.flush();
}
private void writeResponse(ChannelHandlerContext ctx, HttpRequest request, ByteBuf buf, CharSequence contentType, CharSequence contentLength) {
// Build the response object.
FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, buf, false);
HttpHeaders headers = response.headers();
headers.set(CONTENT_TYPE_ENTITY, contentType);
headers.set(SERVER_ENTITY, SERVER_NAME);
headers.set(DATE_ENTITY, date);
headers.set(CONTENT_LENGTH_ENTITY, contentLength);
// Close the non-keep-alive connection after the write operation is done.
ctx.write(response, ctx.voidPromise());
}
});
nettyChannel.config().setAllocator(new Alloc());
GET = Unpooled.unreleasableBuffer(Unpooled.copiedBuffer(("GET / HTTP/1.1\r\n" + "\r\n").getBytes()));
readerIndex = GET.readerIndex();
writeIndex = GET.writerIndex();
}
Aggregations