Example usage for com.google.common.util.concurrent Futures immediateFuture

List of usage examples for com.google.common.util.concurrent Futures immediateFuture

Introduction

In this page you can find the example usage for com.google.common.util.concurrent Futures immediateFuture.

Prototype

@CheckReturnValue
public static <V> ListenableFuture<V> immediateFuture(@Nullable V value) 

Source Link

Document

Creates a ListenableFuture which has its value set immediately upon construction.

Usage

From source file:org.apache.twill.internal.Services.java

/**
 * Returns a {@link ListenableFuture} that will be completed when the given service is stopped. If the service
 * stopped due to error, the failure cause would be reflected in the future.
 *
 * @param service The {@link Service} to block on.
 * @return A {@link ListenableFuture} that will be completed when the service is stopped.
 *///from   w ww .j a va 2 s .com
public static ListenableFuture<Service.State> getCompletionFuture(Service service) {
    final SettableFuture<Service.State> resultFuture = SettableFuture.create();

    service.addListener(new ServiceListenerAdapter() {
        @Override
        public void terminated(Service.State from) {
            resultFuture.set(Service.State.TERMINATED);
        }

        @Override
        public void failed(Service.State from, Throwable failure) {
            resultFuture.setException(failure);
        }
    }, Threads.SAME_THREAD_EXECUTOR);

    Service.State state = service.state();
    if (state == Service.State.TERMINATED) {
        return Futures.immediateFuture(state);
    } else if (state == Service.State.FAILED) {
        return Futures
                .immediateFailedFuture(new IllegalStateException("Service failed with unknown exception."));
    }

    return resultFuture;
}

From source file:com.facebook.presto.server.remotetask.RequestErrorTracker.java

public ListenableFuture<?> acquireRequestPermit() {
    long delayNanos = backoff.getBackoffDelayNanos();

    if (delayNanos == 0) {
        return Futures.immediateFuture(null);
    }//from  ww w. j  a v a2  s. c o m

    ListenableFutureTask<Object> futureTask = ListenableFutureTask.create(() -> null);
    scheduledExecutor.schedule(futureTask, delayNanos, NANOSECONDS);
    return futureTask;
}

From source file:org.opendaylight.netvirt.federation.plugin.FederationPluginRpcServiceImpl.java

@Override
public Future<RpcResult<Void>> updateFederatedNetworks(UpdateFederatedNetworksInput input) {
    FederationPluginRoutedRpcService routedRpcService = rpcRegistry
            .getRpcService(FederationPluginRoutedRpcService.class);
    if (routedRpcService == null) {
        return Futures.immediateFuture(RpcResultBuilder.<Void>failed()
                .withError(ErrorType.RPC, "Failed to get routed RPC service for federation plugin").build());
    }//from   w ww  .j ava2  s.co  m

    List<FederatedNetworksIn> federatedNetworks = input.getFederatedNetworksIn();
    UpdateFederatedNetworksInputBuilder builder = new UpdateFederatedNetworksInputBuilder()
            .setFederatedNetworksIn(convertFederatedNetworks(federatedNetworks))
            .setFederatedAclsIn(convertFederatedAcls(input.getFederatedAclsIn()))
            .setRouteKeyItem(buildtRouteKeyInstanceIdentifier());

    return routedRpcService.updateFederatedNetworks(builder.build());
}

From source file:org.apache.qpid.server.security.AbstractKeyStore.java

@Override
protected ListenableFuture<Void> onClose() {
    if (_checkExpiryTaskFuture != null) {
        _checkExpiryTaskFuture.cancel(false);
        _checkExpiryTaskFuture = null;/* w ww . j av a2 s.c om*/
    }
    return Futures.immediateFuture(null);
}

From source file:io.v.impl.google.rpc.ServerRPCHelper.java

static ListenableFuture<byte[][]> invoke(final Invoker invoker, final VContext ctx, final StreamServerCall call,
        final String method, final byte[][] vomArgs) {
    return Futures.transform(invoker.getArgumentTypes(ctx, method), new AsyncFunction<Type[], byte[][]>() {
        @Override//from  ww  w. ja va  2  s  .c o m
        public ListenableFuture<byte[][]> apply(Type[] argTypes) throws Exception {
            if (argTypes.length != vomArgs.length) {
                throw new VException(String.format("Wrong number of args, want %d, got %d", argTypes.length,
                        vomArgs.length));
            }
            final Object[] args = new Object[argTypes.length];
            for (int i = 0; i < argTypes.length; ++i) {
                args[i] = VomUtil.decode(vomArgs[i], argTypes[i]);
            }
            return Futures.transform(
                    Futures.<Object>allAsList(invoker.getResultTypes(ctx, method),
                            invoker.invoke(ctx, call, method, args)),
                    new AsyncFunction<List<Object>, byte[][]>() {
                        @Override
                        public ListenableFuture<byte[][]> apply(List<Object> input) throws Exception {
                            Type[] resultTypes = (Type[]) input.get(0);
                            Object[] results = (Object[]) input.get(1);
                            if (resultTypes.length != results.length) {
                                throw new VException(String.format("Wrong number of results, want %d, got %d",
                                        resultTypes.length, results.length));
                            }
                            byte[][] vomResults = new byte[resultTypes.length][];
                            for (int i = 0; i < resultTypes.length; ++i) {
                                vomResults[i] = VomUtil.encode(results[i], resultTypes[i]);
                            }
                            return Futures.immediateFuture(vomResults);
                        }
                    });
        }
    });
}

From source file:org.opendaylight.controller.clustering.it.provider.impl.PrefixLeaderHandler.java

public ListenableFuture<RpcResult<Void>> makeLeaderLocal(final BecomePrefixLeaderInput input) {

    final YangInstanceIdentifier yid = serializer.toYangInstanceIdentifier(input.getPrefix());
    final DOMDataTreeIdentifier prefix = new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, yid);

    try (CDSDataTreeProducer producer = (CDSDataTreeProducer) domDataTreeService
            .createProducer(Collections.singleton(prefix))) {

        final CDSShardAccess shardAccess = producer.getShardAccess(prefix);

        final CompletionStage<Void> completionStage = shardAccess.makeLeaderLocal();

        completionStage.exceptionally(throwable -> {
            LOG.error("Leader movement failed.", throwable);
            return null;
        });/*www .jav  a2s.  com*/
    } catch (final DOMDataTreeProducerException e) {
        LOG.warn("Error while closing producer", e);
    } catch (final TimeoutException e) {
        LOG.warn("Timeout while on producer operation", e);
        Futures.immediateFuture(
                RpcResultBuilder.failed().withError(RpcError.ErrorType.RPC, "resource-denied-transport",
                        "Timeout while opening producer please retry.", "clustering-it", "clustering-it", e));
    }

    return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());
}

From source file:org.opendaylight.netconf.topology.example.ExampleNodeManagerCallback.java

@Nonnull
@Override//from  www  . j ava  2 s. c  o m
public ListenableFuture<Node> onNodeUpdated(@Nonnull final NodeId nodeId, @Nonnull final Node configNode) {
    // update magic
    return Futures
            .immediateFuture(new NodeBuilder()
                    .addAugmentation(NetconfNode.class,
                            new NetconfNodeBuilder()
                                    .setConnectionStatus(NetconfNodeFields.ConnectionStatus.Connected).build())
                    .build());
}

From source file:org.opendaylight.openflowplugin.applications.frsync.impl.SyncReactorFutureZipDecorator.java

protected ListenableFuture<Boolean> doSyncupInFuture(
        final InstanceIdentifier<FlowCapableNode> flowcapableNodePath, final SyncupEntry syncupEntry)
        throws InterruptedException {
    final NodeId nodeId = PathUtil.digNodeId(flowcapableNodePath);
    LOG.trace("doSyncupInFuture zip decorator: {}", nodeId.getValue());

    final SyncupEntry lastCompressionState = removeLastCompressionState(flowcapableNodePath);
    if (lastCompressionState == null) {
        return Futures.immediateFuture(true);
    } else {/* ww  w .ja v a  2s .  com*/
        return super.doSyncupInFuture(flowcapableNodePath, lastCompressionState);
    }
}

From source file:com.facebook.buck.distributed.testutil.FakeFileContentsProvider.java

@Override
public ListenableFuture<Boolean> materializeFileContentsAsync(BuildJobStateFileHashEntry entry,
        Path targetAbsPath) {//  w w w  .  j  av a 2s .c o  m
    try {
        return Futures.immediateFuture(materializeFileContents(entry, targetAbsPath));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}

From source file:org.opendaylight.lockmanager.LockManager.java

@Override
public Future<RpcResult<Void>> lock(LockInput input) {
    String lockName = input.getLockName();
    LOG.info("Locking {}", lockName);
    InstanceIdentifier<Lock> lockInstanceIdentifier = LockManagerUtils.getLockInstanceIdentifier(lockName);
    Lock lockData = LockManagerUtils.buildLockData(lockName);
    try {// w ww  .  ja va 2 s  .  co m
        getLock(lockInstanceIdentifier, lockData);
        RpcResultBuilder<Void> lockRpcBuilder = RpcResultBuilder.success();
        LOG.info("Acquired lock {}", lockName);
        return Futures.immediateFuture(lockRpcBuilder.build());
    } catch (InterruptedException e) {
        RpcResultBuilder<Void> lockRpcBuilder = RpcResultBuilder.failed();
        LOG.info("Failed to get lock {}", lockName);
        return Futures.immediateFuture(lockRpcBuilder.build());
    }
}