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.qpid.server.virtualhost.SynchronousMessageStoreRecoverer.java

@Override
public ListenableFuture<Void> recover(QueueManagingVirtualHost<?> virtualHost) {
    EventLogger eventLogger = virtualHost.getEventLogger();
    MessageStore store = virtualHost.getMessageStore();
    MessageStore.MessageStoreReader storeReader = store.newMessageStoreReader();
    MessageStoreLogSubject logSubject = new MessageStoreLogSubject(virtualHost.getName(),
            store.getClass().getSimpleName());

    Map<String, Integer> queueRecoveries = new TreeMap<>();
    Map<Long, ServerMessage<?>> recoveredMessages = new HashMap<>();
    Map<Long, StoredMessage<?>> unusedMessages = new HashMap<>();

    eventLogger.message(logSubject, MessageStoreMessages.RECOVERY_START());

    storeReader.visitMessages(new MessageVisitor(recoveredMessages, unusedMessages));

    eventLogger.message(logSubject, TransactionLogMessages.RECOVERY_START(null, false));
    storeReader.visitMessageInstances(/*  w  w  w .jav a 2 s .  c  o  m*/
            new MessageInstanceVisitor(virtualHost, store, queueRecoveries, recoveredMessages, unusedMessages));
    for (Map.Entry<String, Integer> entry : queueRecoveries.entrySet()) {
        eventLogger.message(logSubject, TransactionLogMessages.RECOVERED(entry.getValue(), entry.getKey()));
        eventLogger.message(logSubject, TransactionLogMessages.RECOVERY_COMPLETE(entry.getKey(), true));
        virtualHost.getAttainedChildFromAddress(Queue.class, entry.getKey()).completeRecovery();
    }

    for (Queue<?> q : virtualHost.getChildren(Queue.class)) {
        if (!queueRecoveries.containsKey(q.getName())) {
            q.completeRecovery();
        }
    }

    storeReader.visitDistributedTransactions(new DistributedTransactionVisitor(virtualHost, store, eventLogger,
            logSubject, recoveredMessages, unusedMessages));

    for (StoredMessage<?> m : unusedMessages.values()) {
        _logger.warn("Message id " + m.getMessageNumber() + " in store, but not in any queue - removing....");
        m.remove();
    }
    eventLogger.message(logSubject, TransactionLogMessages.RECOVERY_COMPLETE(null, false));

    eventLogger.message(logSubject,
            MessageStoreMessages.RECOVERED(recoveredMessages.size() - unusedMessages.size()));
    eventLogger.message(logSubject, MessageStoreMessages.RECOVERY_COMPLETE());

    return Futures.immediateFuture(null);
}

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

@StateTransition(currentState = { State.UNINITIALIZED, State.ERRORED }, desiredState = State.ACTIVE)
protected ListenableFuture<Void> doActivate() {
    initializeExpiryChecking();//from w ww  . j a  v a  2  s . co m
    setState(State.ACTIVE);
    return Futures.immediateFuture(null);
}

From source file:com.microsoft.azure.keyvault.cryptography.RsaKey.java

@Override
public ListenableFuture<Triple<byte[], byte[], String>> encryptAsync(final byte[] plaintext, final byte[] iv,
        final byte[] authenticationData, final String algorithm) throws NoSuchAlgorithmException {

    if (plaintext == null) {
        throw new IllegalArgumentException("plaintext");
    }//from  www .ja  v  a  2 s. co  m

    // Interpret the requested algorithm
    String algorithmName = (Strings.isNullOrWhiteSpace(algorithm) ? getDefaultEncryptionAlgorithm()
            : algorithm);
    Algorithm baseAlgorithm = AlgorithmResolver.Default.get(algorithmName);

    if (baseAlgorithm == null || !(baseAlgorithm instanceof AsymmetricEncryptionAlgorithm)) {
        throw new NoSuchAlgorithmException(algorithmName);
    }

    AsymmetricEncryptionAlgorithm algo = (AsymmetricEncryptionAlgorithm) baseAlgorithm;

    ICryptoTransform transform;
    ListenableFuture<Triple<byte[], byte[], String>> result;

    try {
        transform = algo.CreateEncryptor(_keyPair, _provider);
        result = Futures.immediateFuture(Triple.of(transform.doFinal(plaintext), (byte[]) null, algorithmName));
    } catch (Exception e) {
        result = Futures.immediateFailedFuture(e);
    }

    return result;
}

From source file:org.opendaylight.netvirt.natservice.rpcservice.NatRpcServiceImpl.java

@Override
public Future<RpcResult<GetNatTranslationsOnVpnOutput>> getNatTranslationsOnVpn(
        GetNatTranslationsOnVpnInput input) {
    RpcResultBuilder<GetNatTranslationsOnVpnOutput> rpcResultBuilder = null;

    List<Uuid> routerUuidList = NatUtil.getRouterUuIdsForVpn(dataBroker, input.getVpnUuid());
    if (routerUuidList == null || routerUuidList.isEmpty()) {
        String errMsg = String.format("404 Not Found - Invalid external vpn {%s} provided",
                input.getVpnUuid().getValue());
        rpcResultBuilder = RpcResultBuilder.<GetNatTranslationsOnVpnOutput>failed()
                .withError(RpcError.ErrorType.APPLICATION, errMsg);
        return Futures.immediateFuture(rpcResultBuilder.build());
    }//www.  j  a v a 2 s.c o m
    List<RouterNat> natRouterList = new ArrayList<RouterNat>();
    for (Uuid routerUuid : routerUuidList) {
        long routerId = NatUtil.getVpnId(dataBroker, routerUuid.getValue());
        if (routerId == NatConstants.INVALID_ID) {
            LOG.warn("NAT Service: Invalid RouterID found {}", routerId);
            continue;
        }
        natRouterList.addAll(constructNatInformation(routerUuid, routerId));
    }
    GetNatTranslationsOnVpnOutputBuilder output = new GetNatTranslationsOnVpnOutputBuilder()
            .setRouterNat(natRouterList);
    rpcResultBuilder = RpcResultBuilder.success();
    rpcResultBuilder.withResult(output.build());
    return Futures.immediateFuture(rpcResultBuilder.build());
}

From source file:com.google.gapid.server.Client.java

public ListenableFuture<Stringtable.StringTable> getStringTable(Stringtable.Info info) {
    LOG.log(FINE, "RPC->getStringTable({0})", info);
    return Futures.transformAsync(
            client.getStringTable(GetStringTableRequest.newBuilder().setTable(info).build()),
            in -> Futures.immediateFuture(throwIfError(in.getTable(), in.getError())));
}

From source file:org.opendaylight.coretutorials.clustering.singleton.hs.data.manager.SampleDeviceDataContext.java

@Override
public ListenableFuture<Void> closeServiceInstance() {
    if (listenerReg != null) {
        listenerReg.close();//from  w w w. j a  va 2s .  co m
        listenerReg = null;
    }
    return Futures.immediateFuture(null);
}

From source file:org.apache.qpid.server.configuration.updater.TaskExecutorImpl.java

private <T, E extends Exception> ListenableFuture<T> submitWrappedTask(TaskLoggingWrapper<T, E> task) throws E {
    checkState(task);/*www  .j  a  va 2s  . c  o m*/
    if (isTaskExecutorThread()) {
        if (LOGGER.isTraceEnabled()) {
            LOGGER.trace("Running {} immediately", task);
        }
        T result = task.execute();
        return Futures.immediateFuture(result);
    } else {
        if (LOGGER.isTraceEnabled()) {
            LOGGER.trace("Submitting {} to executor {}", task, _name);
        }

        return _executor.submit(new CallableWrapper<>(task));
    }
}

From source file:com.google.api.server.spi.config.datastore.testing.FakeAsyncMemcacheService.java

@Override
public Future<Void> put(Object key, Object value, Expiration expires) {
    memcacheService.put(key, value, expires);
    return Futures.immediateFuture(null);
}

From source file:eu.point.bootstrapping.impl.BootstrappingServiceImpl.java

/**
 * The method which configures a switch manually, without any resource management function.
 *
 * @param input The input to configure a switch manually, including the switch id, port id, and link id.
 * @return It returns a void future result.
 * @see ConfigureSwitchInput//from w ww  .j  a v  a2  s. c  o m
 */
@Override
public Future<RpcResult<Void>> configureSwitch(ConfigureSwitchInput input) {
    IcnIdConfigurator.getInstance().addLinkManually(input.getSwitchId(), input.getPortId(), input.getLinkId());
    return Futures.immediateFuture(RpcResultBuilder.<Void>success().build());
}

From source file:org.apache.rave.opensocial.service.impl.DefaultAppDataService.java

/**
 * Deletes data for the specified user and group.
 *
 * @param userId  The user//from   www. j  ava 2  s . co m
 * @param groupId The group
 * @param appId   The application ID
 * @param fields  The fields to delete - empty set implies all fields
 * @param token   The security token
 * @return an error if one occurs
 */
@Override
public Future<Void> deletePersonData(UserId userId, GroupId groupId, String appId, Set<String> fields,
        SecurityToken token) throws ProtocolException {
    //make sure the request conforms to the OpenSocial visibility rules
    String personId = validateWriteRequest(userId, groupId, appId, token);

    //lock on this user and this application to avoid any potential concurrency issues
    Lock lock = getApplicationDataLock(personId, appId);
    try {
        lock.lock();

        //get the application data for this user and application
        ApplicationData applicationData = applicationDataRepository.getApplicationData(personId, appId);

        //if there is no data, there's nothing to delete, so we're done...
        if (applicationData == null || applicationData.getData() == null) {
            return Futures.immediateFuture(null);
        }

        //remove the fields specified -- empty field set implies remove all, otherwise remove just the fields specified
        Map<String, Object> data = applicationData.getData();
        if (fields == null || fields.size() == 0) {
            data.clear();
        } else {
            data.keySet().removeAll(fields);
        }

        //save our changes and return
        applicationDataRepository.save(applicationData);
    } finally {
        lock.unlock();
        lockService.returnLock(lock);
    }
    return Futures.immediateFuture(null);
}