private static LastHttpContent toLastContent(ByteBuf buf) { if (buf.isReadable()) { return new DefaultLastHttpContent(buf, false); } else { return LastHttpContent.EMPTY_LAST_CONTENT; } }
@Override public boolean finishBufferedBodyIfIncomplete() { if (! bodyBufferedCompletely) { bufferBodyContents(new DefaultLastHttpContent()); return true; } return false; }
@Override public void setBodyAsText(String bodyText) { disposeBufferedBody(); if (! Strings.isNullOrEmpty(bodyText)) { final ByteBuf content = Unpooled.copiedBuffer(bodyText.getBytes(Charsets.UTF_8)); bufferBodyContents(new DefaultLastHttpContent(content)); setContentLength(bodyText.getBytes(CS_UTF8).length); } else { bufferBodyContents(new DefaultLastHttpContent()); setContentLength(0); } }
private HttpContent invalidChunk(ByteBuf in, Exception cause) { currentState = State.BAD_MESSAGE; // Advance the readerIndex so that ByteToMessageDecoder does not complain // when we produced an invalid message without consuming anything. in.skipBytes(in.readableBytes()); HttpContent chunk = new DefaultLastHttpContent(Unpooled.EMPTY_BUFFER); chunk.setDecoderResult(DecoderResult.failure(cause)); message = null; trailer = null; return chunk; }
@Override public LastHttpContent copy() { LastHttpContent content = new DefaultLastHttpContent(Unpooled.EMPTY_BUFFER); content.trailingHeaders().set(trailingHeaders()); return content; }
@Override public void setBody(byte[] body) { disposeBufferedBody(); if (body != null && body.length > 0) { final ByteBuf content = Unpooled.copiedBuffer(body); bufferBodyContents(new DefaultLastHttpContent(content)); setContentLength(body.length); } else { bufferBodyContents(new DefaultLastHttpContent()); setContentLength(0); } }
@Override public LastHttpContent replace(ByteBuf content) { final DefaultLastHttpContent dup = new DefaultLastHttpContent(content, validateHeaders); dup.trailingHeaders().set(trailingHeaders()); return dup; }
@Override public void writeBuffer(ByteBuf buff, boolean end) { if (end) { if (buff != null && buff.isReadable()) { conn.writeToChannel(new DefaultLastHttpContent(buff, false)); } else { conn.writeToChannel(LastHttpContent.EMPTY_LAST_CONTENT); } } else if (buff != null) { conn.writeToChannel(new DefaultHttpContent(buff)); } }
@Override public boolean finishBufferedBodyIfIncomplete() { if (! bodyBufferedCompletely) { bufferBodyContents(new DefaultLastHttpContent()); return true; } return false; }
@Override public LastHttpContent replace(ByteBuf content) { final LastHttpContent dup = new DefaultLastHttpContent(content); dup.trailingHeaders().setAll(trailingHeaders()); return dup; }
@Override public void setBodyAsText(String bodyText) { disposeBufferedBody(); if (! Strings.isNullOrEmpty(bodyText)) { final ByteBuf content = Unpooled.copiedBuffer(bodyText.getBytes(Charsets.UTF_8)); bufferBodyContents(new DefaultLastHttpContent(content)); setContentLength(bodyText.getBytes(CS_UTF8).length); } else { bufferBodyContents(new DefaultLastHttpContent()); setContentLength(0); } }
@Test public void testBufferBody2GetBody() { final ZuulMessage msg = new ZuulMessageImpl(new SessionContext(), new Headers()); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("Hello ".getBytes()))); msg.bufferBodyContents(new DefaultLastHttpContent(Unpooled.copiedBuffer("World!".getBytes()))); final String body = new String(msg.getBody()); assertTrue(msg.hasBody()); assertTrue(msg.hasCompleteBody()); assertEquals("Hello World!", body); }
@Override public void setBody(byte[] body) { disposeBufferedBody(); if (body != null && body.length > 0) { final ByteBuf content = Unpooled.copiedBuffer(body); bufferBodyContents(new DefaultLastHttpContent(content)); setContentLength(body.length); } else { bufferBodyContents(new DefaultLastHttpContent()); setContentLength(0); } }
@Test public void testBufferBody3GetBody() { final ZuulMessage msg = new ZuulMessageImpl(new SessionContext(), new Headers()); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("Hello ".getBytes()))); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("World!".getBytes()))); msg.bufferBodyContents(new DefaultLastHttpContent()); final String body = new String(msg.getBody()); assertTrue(msg.hasBody()); assertTrue(msg.hasCompleteBody()); assertEquals("Hello World!", body); }
@Test public void testBufferBody3GetBodyAsText() { final ZuulMessage msg = new ZuulMessageImpl(new SessionContext(), new Headers()); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("Hello ".getBytes()))); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("World!".getBytes()))); msg.bufferBodyContents(new DefaultLastHttpContent()); final String body = msg.getBodyAsText(); assertTrue(msg.hasBody()); assertTrue(msg.hasCompleteBody()); assertEquals("Hello World!", body); }
@Override public HttpContent processContentChunk(ZuulMessage resp, HttpContent chunk) { final Gzipper gzipper = (Gzipper) resp.getContext().get(CommonContextKeys.GZIPPER); gzipper.write(chunk); if (chunk instanceof LastHttpContent) { gzipper.finish(); return new DefaultLastHttpContent(gzipper.getByteBuf()); } else { return new DefaultHttpContent(gzipper.getByteBuf()); } }
@Test public void testBufferBody2GetBody() { final ZuulMessage msg = new ZuulMessageImpl(new SessionContext(), new Headers()); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("Hello ".getBytes()))); msg.bufferBodyContents(new DefaultLastHttpContent(Unpooled.copiedBuffer("World!".getBytes()))); final String body = new String(msg.getBody()); assertTrue(msg.hasBody()); assertTrue(msg.hasCompleteBody()); assertEquals("Hello World!", body); }
@Test public void testBufferBody3GetBody() { final ZuulMessage msg = new ZuulMessageImpl(new SessionContext(), new Headers()); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("Hello ".getBytes()))); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("World!".getBytes()))); msg.bufferBodyContents(new DefaultLastHttpContent()); final String body = new String(msg.getBody()); assertTrue(msg.hasBody()); assertTrue(msg.hasCompleteBody()); assertEquals("Hello World!", body); }
@Test public void testBufferBody3GetBodyAsText() { final ZuulMessage msg = new ZuulMessageImpl(new SessionContext(), new Headers()); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("Hello ".getBytes()))); msg.bufferBodyContents(new DefaultHttpContent(Unpooled.copiedBuffer("World!".getBytes()))); msg.bufferBodyContents(new DefaultLastHttpContent()); final String body = msg.getBodyAsText(); assertTrue(msg.hasBody()); assertTrue(msg.hasCompleteBody()); assertEquals("Hello World!", body); }
@Override public HttpContent processContentChunk(ZuulMessage resp, HttpContent chunk) { final Gzipper gzipper = (Gzipper) resp.getContext().get(CommonContextKeys.GZIPPER); gzipper.write(chunk); if (chunk instanceof LastHttpContent) { gzipper.finish(); return new DefaultLastHttpContent(gzipper.getByteBuf()); } else { return new DefaultHttpContent(gzipper.getByteBuf()); } }