@GET @Path("stream") @Produces(MediaType.TEXT_PLAIN) public void getStream( @Context final Vertx vertx, @Suspended final AsyncResponse asyncResponse) { final WriteStreamOutput writeStreamOutput = new DefaultWriteStreamOutput(); final Buffer buffer1 = Buffer.buffer().appendString("abcdefghijklmnopqrstuvwxyz"); final Buffer buffer2 = Buffer.buffer().appendString("0123456789"); int length = buffer1.length() + buffer2.length(); asyncResponse.resume(Response .ok(writeStreamOutput) .header(HttpHeaders.CONTENT_LENGTH, length) .build()); vertx.runOnContext(aVoid1 -> { writeStreamOutput.write(buffer1); vertx.runOnContext(aVoid2 -> { writeStreamOutput.write(buffer2); writeStreamOutput.end(); }); }); }
} else if (responseContext.hasEntity() && WriteStreamOutput.class.isAssignableFrom(responseContext.getEntityClass())) { WriteStreamOutput writeStreamOutput = (WriteStreamOutput) responseContext.getEntity(); writeStreamOutput.init(response, event -> end()); isWriteStream = true; return new NOPOutputStream();
} else if (responseContext.hasEntity() && WriteStreamOutput.class.isAssignableFrom(responseContext.getEntityClass())) { WriteStreamOutput writeStreamOutput = (WriteStreamOutput) responseContext.getEntity(); writeStreamOutput.init(response, event -> end()); isWriteStream = true; return new NOPOutputStream();
} else if (responseContext.hasEntity() && WriteStreamOutput.class.isAssignableFrom(responseContext.getEntityClass())) { WriteStreamOutput writeStreamOutput = (WriteStreamOutput) responseContext.getEntity(); writeStreamOutput.init(response, new Handler<Void>() { @Override public void handle(Void event) {