List of usage examples for org.springframework.http.server.reactive HttpHeadResponseDecorator HttpHeadResponseDecorator
public HttpHeadResponseDecorator(ServerHttpResponse delegate)
From source file:org.springframework.http.server.reactive.ReactorHttpHandlerAdapter.java
@Override public Mono<Void> apply(HttpServerRequest request, HttpServerResponse response) { NettyDataBufferFactory bufferFactory = new NettyDataBufferFactory(response.alloc()); ServerHttpRequest adaptedRequest;//from w w w. j a v a 2s .co m ServerHttpResponse adaptedResponse; try { adaptedRequest = new ReactorServerHttpRequest(request, bufferFactory); adaptedResponse = new ReactorServerHttpResponse(response, bufferFactory); } catch (URISyntaxException ex) { logger.error("Invalid URL " + ex.getMessage(), ex); response.status(HttpResponseStatus.BAD_REQUEST); return Mono.empty(); } if (HttpMethod.HEAD.equals(adaptedRequest.getMethod())) { adaptedResponse = new HttpHeadResponseDecorator(adaptedResponse); } return this.httpHandler.handle(adaptedRequest, adaptedResponse) .doOnError(ex -> logger.error("Handling completed with error", ex)) .doOnSuccess(aVoid -> logger.debug("Handling completed with success")); }
From source file:org.springframework.http.server.reactive.ServletHttpHandlerAdapter.java
@Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { if (DispatcherType.ASYNC.equals(request.getDispatcherType())) { Throwable ex = (Throwable) request.getAttribute(WRITE_ERROR_ATTRIBUTE_NAME); throw new ServletException("Write publisher error", ex); }//from w ww .j ava 2s . c o m // Start async before Read/WriteListener registration AsyncContext asyncContext = request.startAsync(); asyncContext.setTimeout(-1); ServerHttpRequest httpRequest = createRequest(((HttpServletRequest) request), asyncContext); ServerHttpResponse httpResponse = createResponse(((HttpServletResponse) response), asyncContext); if (HttpMethod.HEAD.equals(httpRequest.getMethod())) { httpResponse = new HttpHeadResponseDecorator(httpResponse); } AtomicBoolean isCompleted = new AtomicBoolean(); HandlerResultAsyncListener listener = new HandlerResultAsyncListener(isCompleted); asyncContext.addListener(listener); HandlerResultSubscriber subscriber = new HandlerResultSubscriber(asyncContext, isCompleted); this.httpHandler.handle(httpRequest, httpResponse).subscribe(subscriber); }
From source file:org.springframework.http.server.reactive.UndertowHttpHandlerAdapter.java
@Override public void handleRequest(HttpServerExchange exchange) throws Exception { ServerHttpRequest request = new UndertowServerHttpRequest(exchange, getDataBufferFactory()); ServerHttpResponse response = new UndertowServerHttpResponse(exchange, getDataBufferFactory()); if (HttpMethod.HEAD.equals(request.getMethod())) { response = new HttpHeadResponseDecorator(response); }/*from ww w .j av a2 s. c o m*/ HandlerResultSubscriber resultSubscriber = new HandlerResultSubscriber(exchange); this.httpHandler.handle(request, response).subscribe(resultSubscriber); }
From source file:org.springframework.test.web.reactive.server.HttpHandlerConnector.java
private ServerHttpResponse prepareResponse(ServerHttpResponse response, ServerHttpRequest request) { return HttpMethod.HEAD.equals(request.getMethod()) ? new HttpHeadResponseDecorator(response) : response; }