List of usage examples for com.google.common.util.concurrent FluentFuture from
public static <V> FluentFuture<V> from(ListenableFuture<V> future)
From source file:io.airlift.drift.transport.netty.server.ThriftServerHandler.java
private ListenableFuture<ThriftFrame> decodeMessage(ChannelHandlerContext context, TTransport messageData, Transport transport, Protocol protocol, Map<String, String> headers, boolean supportOutOfOrderResponse) throws Exception { long start = System.nanoTime(); TProtocolReader protocolReader = protocol.createProtocol(messageData); TMessage message = protocolReader.readMessageBegin(); Optional<MethodMetadata> methodMetadata = methodInvoker.getMethodMetadata(message.getName()); if (!methodMetadata.isPresent()) { return immediateFuture(writeApplicationException(context, message.getName(), transport, protocol, message.getSequenceId(), supportOutOfOrderResponse, UNKNOWN_METHOD, "Invalid method name: '" + message.getName() + "'", null)); }// w ww .j av a 2 s . c o m MethodMetadata method = methodMetadata.get(); if (message.getType() != TMessageType.CALL && message.getType() != TMessageType.ONEWAY) { return immediateFuture(writeApplicationException(context, message.getName(), transport, protocol, message.getSequenceId(), supportOutOfOrderResponse, INVALID_MESSAGE_TYPE, "Invalid method message type: '" + message.getType() + "'", null)); } Map<Short, Object> parameters = readArguments(method, protocolReader); ListenableFuture<Object> result = methodInvoker .invoke(new ServerInvokeRequest(method, headers, parameters)); methodInvoker.recordResult(message.getName(), start, result); return FluentFuture.from(result).transformAsync(value -> { try { return immediateFuture(writeSuccessResponse(context, method, transport, protocol, message.getSequenceId(), supportOutOfOrderResponse, value)); } catch (Exception e) { return immediateFailedFuture(e); } }, directExecutor()).withTimeout(requestTimeout.toMillis(), MILLISECONDS, timeoutExecutor) .catchingAsync(Exception.class, exception -> { try { return immediateFuture(writeExceptionResponse(context, method, transport, protocol, message.getSequenceId(), supportOutOfOrderResponse, exception)); } catch (Exception e) { return immediateFailedFuture(e); } }, directExecutor()); }
From source file:io.prestosql.proxy.ProxyResource.java
private FluentFuture<ProxyResponse> executeHttp(Request request) { return FluentFuture.from(httpClient.executeAsync(request, new ProxyResponseHandler())); }