List of usage examples for org.springframework.core.io.buffer NettyDataBufferFactory NettyDataBufferFactory
public NettyDataBufferFactory(ByteBufAllocator byteBufAllocator)
From source file:org.springframework.core.io.buffer.LeakAwareDataBufferFactory.java
/** * Creates a new {@code LeakAwareDataBufferFactory} by wrapping a * {@link DefaultDataBufferFactory}.//from w ww . j a va2 s .co m */ public LeakAwareDataBufferFactory() { this(new NettyDataBufferFactory(PooledByteBufAllocator.DEFAULT)); }
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;/* ww w .j a v a2 s. c o 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.RxNettyHttpHandlerAdapter.java
@Override public Observable<Void> handle(HttpServerRequest<ByteBuf> nativeRequest, HttpServerResponse<ByteBuf> nativeResponse) { ByteBufAllocator allocator = nativeResponse.unsafeNettyChannel().alloc(); NettyDataBufferFactory bufferFactory = new NettyDataBufferFactory(allocator); RxNettyServerHttpRequest request = new RxNettyServerHttpRequest(nativeRequest, bufferFactory); RxNettyServerHttpResponse response = new RxNettyServerHttpResponse(nativeResponse, bufferFactory); Publisher<Void> result = getHttpHandler().handle(request, response).otherwise(ex -> { logger.error("Could not complete request", ex); nativeResponse.setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); return Mono.empty(); }).doOnSuccess(aVoid -> logger.debug("Successfully completed request")); return RxReactiveStreams.toObservable(result); }
From source file:org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient.java
@Override public Mono<Void> execute(URI url, HttpHeaders requestHeaders, WebSocketHandler handler) { return getHttpClient().headers(nettyHeaders -> setNettyHeaders(requestHeaders, nettyHeaders)) .websocket(StringUtils.collectionToCommaDelimitedString(handler.getSubProtocols())) .uri(url.toString()).handle((inbound, outbound) -> { HttpHeaders responseHeaders = toHttpHeaders(inbound); String protocol = responseHeaders.getFirst("Sec-WebSocket-Protocol"); HandshakeInfo info = new HandshakeInfo(url, responseHeaders, Mono.empty(), protocol); NettyDataBufferFactory factory = new NettyDataBufferFactory(outbound.alloc()); WebSocketSession session = new ReactorNettyWebSocketSession(inbound, outbound, info, factory); if (logger.isDebugEnabled()) { logger.debug("Started session '" + session.getId() + "' for " + url); }//from w w w .j a v a 2s. co m return handler.handle(session); }).doOnRequest(n -> { if (logger.isDebugEnabled()) { logger.debug("Connecting to " + url); } }).next(); }