Example usage for org.springframework.core.io.buffer NettyDataBufferFactory NettyDataBufferFactory

List of usage examples for org.springframework.core.io.buffer NettyDataBufferFactory NettyDataBufferFactory

Introduction

In this page you can find the example usage for org.springframework.core.io.buffer NettyDataBufferFactory NettyDataBufferFactory.

Prototype

public NettyDataBufferFactory(ByteBufAllocator byteBufAllocator) 

Source Link

Document

Create a new NettyDataBufferFactory based on the given factory.

Usage

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();
}