sb.decorator(contentEncodingDecorator(compression));
@Override protected void configure(ServerBuilder sb) throws Exception { final SslContext sslContext = SslContextBuilder.forServer(serverCert.certificateFile(), serverCert.privateKeyFile()) .trustManager(InsecureTrustManagerFactory.INSTANCE) .clientAuth(ClientAuth.REQUIRE) .build(); sb.tls(sslContext) .service("/", (ctx, req) -> HttpResponse.of("success")) .decorator(new LoggingServiceBuilder().newDecorator()); } };
@Override protected void configure(ServerBuilder sb) { sb.service("/trailers", ((ctx, req) -> { HttpResponseWriter writer = HttpResponse.streaming(); HttpHeaders headers = HttpHeaders.of(HttpStatus.OK); assertThat(headers.isEndOfStream()).isFalse(); HttpHeaders trailers = new DefaultHttpHeaders(true, 1, true) .set(HttpHeaderNames.of("armeria-message"), "error"); assertThat(trailers.isEndOfStream()).isTrue(); writer.write(headers); writer.write(trailers); writer.close(); return writer; })); sb.service("/trailers-only", ((ctx, req) -> { HttpResponseWriter writer = HttpResponse.streaming(); HttpHeaders trailers = new DefaultHttpHeaders(true, 1, true) .status(HttpStatus.OK) .set(HttpHeaderNames.of("armeria-message"), "error"); assertThat(trailers.isEndOfStream()).isTrue(); writer.write(trailers); writer.close(); return writer; })); sb.decorator(LoggingService.newDecorator()); } };
@Override protected void configure(ServerBuilder sb) { sb.service("/trailers", (ctx, req) -> { HttpClient client = HttpClient.of(backendServer.uri("/")); return client.get("/trailers"); }); sb.service("/trailers-only", (ctx, req) -> { HttpClient client = HttpClient.of(backendServer.uri("/")); return client.get("/trailers-only"); }); sb.decorator(LoggingService.newDecorator()); } };