Java 类org.eclipse.jetty.server.HttpOutput 实例源码

项目:konker-platform    文件:RequestResponseInterceptor.java   
@Override
public void afterCompletion(
        HttpServletRequest request,
        HttpServletResponse response,
        Object handler,
        Exception ex) throws Exception {

    String emailUser = request.getUserPrincipal().getName();
    ServiceResponse<User> serviceResponse = userService.findByEmail(emailUser);
    String url = request.getRequestURL().toString();
    HttpOutput out = (HttpOutput) response.getOutputStream();

    if (serviceResponse.isOk()) {
        LOGGER.info(MessageFormat.format("{0} {1} {2} {3}",
                   serviceResponse.getResult().getTenant().getDomainName(),
                url,
                   response.getStatus(),
                out.getWritten()));
    }

}
项目:jooby    文件:JettySseTest.java   
@Test
public void send() throws Exception {
  byte[] bytes = {0};
  CountDownLatch latch = new CountDownLatch(1);
  new MockUnit(Request.class, Response.class, HttpOutput.class)
    .expect(httpOutput)
    .expect(write(bytes))
    .run(unit -> {
      new JettySse(unit.get(Request.class),
        unit.get(Response.class))
        .send(Optional.of("1"), bytes).whenComplete((id, x) -> {
        if (x == null) {
          assertEquals("1", id.get());
          latch.countDown();
        }
      });
      latch.await();
    });
}
项目:jooby    文件:JettySseTest.java   
@Test
public void sendFailure() throws Exception {
  byte[] bytes = {0};
  IOException cause = new IOException("intentional error");
  CountDownLatch latch = new CountDownLatch(1);
  new MockUnit(Request.class, Response.class, HttpOutput.class)
    .expect(httpOutput)
    .expect(unit -> {
      HttpOutput output = unit.get(HttpOutput.class);
      output.write(bytes);
      expectLastCall().andThrow(cause);
    })
    .run(unit -> {
      new JettySse(unit.get(Request.class),
        unit.get(Response.class))
        .send(Optional.of("1"), bytes).whenComplete((id, x) -> {
        if (x != null) {
          assertEquals(cause, x);
          latch.countDown();
        }
      });
      latch.await();
    });
}
项目:jooby    文件:JettyResponseTest.java   
@Test
public void sendBytes() throws Exception {
  byte[] bytes = "bytes".getBytes();
  new MockUnit(ServletServletRequest.class, Request.class, Response.class, HttpOutput.class)
      .expect(servletRequest)
      .expect(unit -> {
        HttpOutput output = unit.get(HttpOutput.class);
        output.sendContent(unit.capture(ByteBuffer.class));

        Response rsp = unit.get(Response.class);
        rsp.setHeader("Transfer-Encoding", null);
        expect(rsp.getHttpOutput()).andReturn(output);
      })
      .run(unit -> {
        new JettyResponse(unit.get(ServletServletRequest.class), unit.get(Response.class))
            .send(bytes);
      }, unit -> {
        assertArrayEquals(bytes, unit.captured(ByteBuffer.class).iterator().next().array());
      });
}
项目:jooby    文件:JettyResponseTest.java   
@Test
public void sendBuffer() throws Exception {
  byte[] bytes = "bytes".getBytes();
  ByteBuffer buffer = ByteBuffer.wrap(bytes);
  new MockUnit(ServletServletRequest.class, Request.class, Response.class, HttpOutput.class)
      .expect(servletRequest)
      .expect(unit -> {
        HttpOutput output = unit.get(HttpOutput.class);
        output.sendContent(eq(buffer));

        Response rsp = unit.get(Response.class);
        expect(rsp.getHttpOutput()).andReturn(output);
      })
      .run(unit -> {
        new JettyResponse(unit.get(ServletServletRequest.class), unit.get(Response.class))
            .send(buffer);
      });
}
项目:jooby    文件:JettyResponseTest.java   
@Test
public void sendInputStream() throws Exception {
  new MockUnit(ServletServletRequest.class, Request.class, Response.class, HttpOutput.class,
      InputStream.class, AsyncContext.class)
          .expect(servletRequest)
          .expect(unit -> {
            unit.mockStatic(Channels.class);
            ReadableByteChannel channel = unit.mock(ReadableByteChannel.class);
            expect(Channels.newChannel(unit.get(InputStream.class))).andReturn(channel);

            HttpOutput output = unit.get(HttpOutput.class);
            output.sendContent(eq(channel), isA(JettyResponse.class));

            Response rsp = unit.get(Response.class);
            expect(rsp.getHttpOutput()).andReturn(output);
          })
          .expect(startAsync)
          .run(unit -> {
            new JettyResponse(unit.get(ServletServletRequest.class), unit.get(Response.class))
                .send(unit.get(InputStream.class));
          });
}
项目:jooby    文件:JettyResponseTest.java   
@Test
public void sendSmallFileChannel() throws Exception {
  FileChannel channel = newFileChannel(1);
  new MockUnit(ServletServletRequest.class, Request.class, Response.class, HttpOutput.class,
      AsyncContext.class)
          .expect(servletRequest)
          .expect(unit -> {
            HttpOutput output = unit.get(HttpOutput.class);
            output.sendContent(eq(channel));

            Response rsp = unit.get(Response.class);
            expect(rsp.getBufferSize()).andReturn(2);
            expect(rsp.getHttpOutput()).andReturn(output);
          })
          .run(unit -> {
            new JettyResponse(unit.get(ServletServletRequest.class), unit.get(Response.class))
                .send(channel);
          });
}
项目:jooby    文件:JettyResponseTest.java   
@Test
public void sendLargeFileChannel() throws Exception {
  FileChannel channel = newFileChannel(10);
  new MockUnit(ServletServletRequest.class, Request.class, Response.class, HttpOutput.class,
      AsyncContext.class)
          .expect(servletRequest)
          .expect(unit -> {
            HttpOutput output = unit.get(HttpOutput.class);
            output.sendContent(eq(channel), isA(JettyResponse.class));

            Response rsp = unit.get(Response.class);
            expect(rsp.getBufferSize()).andReturn(5);
            expect(rsp.getHttpOutput()).andReturn(output);
          })
          .expect(startAsync)
          .run(unit -> {
            new JettyResponse(unit.get(ServletServletRequest.class), unit.get(Response.class))
                .send(channel);
          });
}
项目:jooby    文件:JettyResponseTest.java   
@Test
public void end() throws Exception {
  new MockUnit(ServletServletRequest.class, Request.class, Response.class, HttpOutput.class)
      .expect(servletRequest)
      .expect(unit -> {
        HttpOutput output = unit.get(HttpOutput.class);
        output.close();

        Response rsp = unit.get(Response.class);
        expect(rsp.getHttpOutput()).andReturn(output);
      })
      .expect(noAsyncStarted)
      .run(unit -> {
        new JettyResponse(unit.get(ServletServletRequest.class), unit.get(Response.class))
            .end();
      });
}
项目:ignite    文件:ResourceHandler.java   
/**
 * @param response Http response.
 * @param type Type.
 * @param path Path to file.
 * @throws IOException If failed.
 */
private static void handleRequest(HttpServletResponse response, String type, String path) throws IOException {
    Path path0 = Paths.get(path);

    response.setContentType(type);
    response.setHeader("Content-Disposition", "attachment; filename=\"" + path0.getFileName() + "\"");

    try (HttpOutput out = (HttpOutput)response.getOutputStream()) {
        out.sendContent(FileChannel.open(path0, StandardOpenOption.READ));
    }
}
项目:ignite    文件:ResourceHandler.java   
/**
 * @param response Http response.
 * @param type Type.
 * @param stream Stream.
 * @param attachmentName Attachment name.
 * @throws IOException If failed.
 */
private static void handleRequest(HttpServletResponse response, String type, InputStream stream,
    String attachmentName) throws IOException {
    response.setContentType(type);
    response.setHeader("Content-Disposition", "attachment; filename=\"" + attachmentName + "\"");

    try (HttpOutput out = (HttpOutput)response.getOutputStream()) {
        out.sendContent(stream);
    }
}
项目:jooby    文件:JettySseTest.java   
@Test
public void defaults() throws Exception {
  new MockUnit(Request.class, Response.class, HttpOutput.class)
    .expect(httpOutput)
    .run(unit -> {
      new JettySse(unit.get(Request.class), unit.get(Response.class));
    });
}
项目:jooby    文件:JettySseTest.java   
@Test
public void handshake() throws Exception {
  new MockUnit(Request.class, Response.class, HttpOutput.class, Runnable.class,
    AsyncContext.class, HttpChannel.class, Connector.class, Executor.class)
    .expect(httpOutput)
    .expect(unit -> {
      AsyncContext async = unit.get(AsyncContext.class);
      async.setTimeout(0L);

      Request req = unit.get(Request.class);
      expect(req.getAsyncContext()).andReturn(async);
    })
    .expect(unit -> {
      Response rsp = unit.get(Response.class);
      rsp.setStatus(200);
      rsp.setHeader("Connection", "Close");
      rsp.setContentType("text/event-stream; charset=utf-8");
      rsp.flushBuffer();

      HttpChannel channel = unit.get(HttpChannel.class);
      expect(rsp.getHttpChannel()).andReturn(channel);

      Connector connector = unit.get(Connector.class);
      expect(channel.getConnector()).andReturn(connector);

      Executor executor = unit.get(Executor.class);
      expect(connector.getExecutor()).andReturn(executor);

      executor.execute(unit.get(Runnable.class));
    })
    .run(unit -> {
      new JettySse(unit.get(Request.class), unit.get(Response.class))
        .handshake(unit.get(Runnable.class));
    });
}
项目:jooby    文件:JettySseTest.java   
@SuppressWarnings("resource")
@Test
public void shouldCloseEof() throws Exception {

  new MockUnit(Request.class, Response.class, HttpOutput.class)
    .expect(httpOutput)
    .run(unit -> {
      JettySse sse = new JettySse(unit.get(Request.class), unit.get(Response.class));
      assertEquals(true, sse.shouldClose(new EofException()));
    });
}
项目:jooby    文件:JettySseTest.java   
@SuppressWarnings("resource")
@Test
public void shouldCloseBrokenPipe() throws Exception {

  new MockUnit(Request.class, Response.class, HttpOutput.class)
    .expect(httpOutput)
    .run(unit -> {
      JettySse sse = new JettySse(unit.get(Request.class), unit.get(Response.class));
      assertEquals(true, sse.shouldClose(new IOException("broken pipe")));
    });
}
项目:jooby    文件:JettySseTest.java   
@Test
public void close() throws Exception {
  new MockUnit(Request.class, Response.class, HttpOutput.class)
    .expect(httpOutput)
    .expect(unit -> {
      Response rsp = unit.get(Response.class);
      rsp.closeOutput();
    })
    .run(unit -> {
      JettySse sse = new JettySse(unit.get(Request.class), unit.get(Response.class));
      sse.close();
    });
}
项目:jooby    文件:JettySseTest.java   
@Test
public void ignoreClosedStream() throws Exception {
  new MockUnit(Request.class, Response.class, HttpOutput.class)
    .expect(httpOutput)
    .expect(unit -> {
      Response rsp = unit.get(Response.class);
      rsp.closeOutput();
    })
    .run(unit -> {
      JettySse sse = new JettySse(unit.get(Request.class), unit.get(Response.class));
      sse.close();
      sse.close();
    });
}
项目:jooby    文件:JettySseTest.java   
@Test
public void closeFailure() throws Exception {
  new MockUnit(Request.class, Response.class, HttpOutput.class)
    .expect(httpOutput)
    .expect(unit -> {
      Response rsp = unit.get(Response.class);
      rsp.closeOutput();
      expectLastCall().andThrow(new EofException("intentional err"));
    })
    .run(unit -> {
      JettySse sse = new JettySse(unit.get(Request.class), unit.get(Response.class));
      sse.close();
    });
}
项目:jooby    文件:JettySseTest.java   
private Block write(final byte[] bytes) {
  return unit -> {
    HttpOutput output = unit.get(HttpOutput.class);
    output.write(bytes);
    output.flush();
  };
}
项目:jooby    文件:JettyResponseTest.java   
@Test
public void failed() throws Exception {
  IOException cause = new IOException();
  new MockUnit(ServletServletRequest.class, Request.class, Response.class, HttpOutput.class)
      .expect(servletRequest)
      .expect(unit -> {
        Logger log = unit.mock(Logger.class);
        log.error("execution of /path resulted in exception", cause);

        unit.mockStatic(LoggerFactory.class);
        expect(LoggerFactory.getLogger(org.jooby.Response.class)).andReturn(log);
      })
      .expect(unit -> {
        HttpOutput output = unit.get(HttpOutput.class);
        output.close();

        Response rsp = unit.get(Response.class);
        expect(rsp.getHttpOutput()).andReturn(output);
      })
      .expect(noAsyncStarted)
      .expect(unit -> {
        ServletServletRequest req = unit.get(ServletServletRequest.class);
        expect(req.path()).andReturn("/path");
      })
      .run(unit -> {
        new JettyResponse(unit.get(ServletServletRequest.class), unit.get(Response.class))
            .failed(cause);
      });
}
项目:jooby    文件:JettyResponse.java   
private HttpOutput sender() {
  return ((Response) rsp).getHttpOutput();
}