Example usage for com.google.common.util.concurrent SettableFuture set

List of usage examples for com.google.common.util.concurrent SettableFuture set

Introduction

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

Prototype

@Override
    public boolean set(@Nullable V value) 

Source Link

Usage

From source file:org.apache.helix.provisioning.yarn.NMCallbackHandler.java

@Override
public void onContainerStopped(ContainerId containerId) {
    LOG.info("Succeeded to stop Container " + containerId);
    Container container = containers.get(containerId);
    if (container != null) {
        applicationMaster.nmClientAsync.getContainerStatusAsync(containerId, container.getNodeId());
    }/*  w ww  .j  a  va 2 s.  co m*/
    SettableFuture<ContainerStopResponse> settableFuture = applicationMaster.containerStopMap
            .remove(containerId);
    ContainerStopResponse value = new ContainerStopResponse();
    settableFuture.set(value);
    containers.remove(containerId);
}

From source file:org.opendaylight.controller.cluster.datastore.LocalTransactionContext.java

@Override
public <T> void executeRead(AbstractRead<T> readCmd, final SettableFuture<T> proxyFuture) {
    Futures.addCallback(readCmd.apply(getReadDelegate()), new FutureCallback<T>() {
        @Override// w w w . jav a 2s. co  m
        public void onSuccess(final T result) {
            proxyFuture.set(result);
        }

        @Override
        public void onFailure(final Throwable t) {
            proxyFuture.setException(t);
        }
    });
}

From source file:io.grpc.cronet.CronetClientTransport.java

@Override
public ListenableFuture<TransportStats> getStats() {
    SettableFuture<TransportStats> f = SettableFuture.create();
    f.set(null);
    return f;// w ww . j a  v  a 2 s.  co m
}

From source file:co.cask.cdap.data2.transaction.queue.leveldb.LevelDBQueueEvictor.java

@Override
public ListenableFuture<Integer> evict(final Transaction transaction) {
    final SettableFuture<Integer> result = SettableFuture.create();
    executor.execute(new Runnable() {

        @Override/*w  w  w  .j  av  a2  s. co m*/
        public void run() {
            try {
                result.set(doEvict(transaction));
            } catch (Throwable t) {
                result.setException(t);
            }
        }
    });
    return result;
}

From source file:org.opendaylight.usc.plugin.UscDemultiplexer.java

@Override
protected void channelRead0(ChannelHandlerContext ctx, UscFrame frame) throws Exception {
    LOG.trace("UscDemultiplexer.channelRead: " + frame);

    if (frame instanceof UscControl) {
        UscControl controlMsg = (UscControl) frame;
        if (controlMsg.getControlCode() == UscControl.ControlCode.ECHO) {
            SocketAddress remoteAddress = ctx.channel().remoteAddress();
            promiseMap.get(remoteAddress).set(new Throwable("Success"));
            LOG.trace("channelRead0: promiseMap = " + promiseMap);
            return;
        }/*from w w w  .  j  av  a2  s. c  om*/
    }

    final UscHeader header = frame.getHeader();
    final int sessionId = header.getSessionId();
    final UscChannelImpl connection = ctx.channel().attr(UscPlugin.CHANNEL).get();

    final UscSessionImpl session = connection.getSession(sessionId);
    final LocalChannel serverChannel = session.getServerChannel();
    if (frame instanceof UscError) {
        // propagate exception to the client channel
        UscSessionException ex = new UscSessionException(((UscError) frame).getErrorCode());

        serverChannel.writeAndFlush(ex);
        plugin.sendEvent(new UscSessionErrorEvent(session, ex));
    } else if (frame instanceof UscData) {

        if (serverChannel != null) {
            LOG.trace("write session " + sessionId + " to " + serverChannel + ": " + frame.getPayload());

            ByteBuf payload = frame.getPayload();

            plugin.sendEvent(new UscSessionTransactionEvent(session, payload.readableBytes(), 0));

            serverChannel.writeAndFlush(payload);
        } else {
            UscChannelException ex = new UscChannelException(
                    "write unknown session " + sessionId + "; discard");
            plugin.sendEvent(new UscChannelErrorEvent(session.getChannel(), ex));

            throw ex;
        }
    } else if (frame instanceof UscControl) {
        UscControl controlMsg = (UscControl) frame;
        Channel clientChannel = serverChannel.attr(UscPlugin.CLIENT_CHANNEL).get();
        if (controlMsg.getControlCode() == UscControl.ControlCode.TERMINATION_REQUEST) {
            LOG.trace("UscDemultiplexer received control message TERMINATION_REQUEST");
            clientChannel.close();

            // send back TERMINATION_RESPONSE
            UscControl data = new UscControl(session.getPort(), session.getSessionId(), 2);
            ctx.channel().writeAndFlush(data);
        } else if (controlMsg.getControlCode() == UscControl.ControlCode.TERMINATION_RESPONSE) {
            LOG.trace("UscDemultiplexer received control message TERMINATION_RESPONSE");
            if (clientChannel != null) {
                SettableFuture<Boolean> status = plugin.getCloseFuture().get(clientChannel);
                status.set(true);
                LOG.trace("UscDemultiplexer: termination status is " + status.get());
            }
        }
    } else {
        LOG.trace("UscDemultiplexer.channelRead: unexpected UscFrame object " + frame);
        UscChannelException ex = new UscChannelException("unexpected UscFrame object " + frame);
        plugin.sendEvent(new UscChannelErrorEvent(session.getChannel(), ex));

        throw ex;
    }
}

From source file:zipkin.collector.scribe.ScribeSpanConsumer.java

@Override
public ListenableFuture<ResultCode> log(List<LogEntry> messages) {
    metrics.incrementMessages();//from  ww w. j  av a 2 s.  c om
    List<byte[]> thrifts;
    try {
        thrifts = messages.stream().filter(m -> m.category.equals(category))
                .map(m -> m.message.getBytes(StandardCharsets.ISO_8859_1))
                .map(b -> Base64.getMimeDecoder().decode(b)) // finagle-zipkin uses mime encoding
                .collect(Collectors.toList());
    } catch (RuntimeException e) {
        metrics.incrementMessagesDropped();
        return Futures.immediateFailedFuture(e);
    }

    SettableFuture<ResultCode> result = SettableFuture.create();
    collector.acceptSpans(thrifts, Codec.THRIFT, new Callback<Void>() {
        @Override
        public void onSuccess(@Nullable Void value) {
            result.set(ResultCode.OK);
        }

        @Override
        public void onError(Throwable t) {
            result.setException(t);
        }
    });
    return result;
}

From source file:org.pentaho.di.core.KettleEnvironment.java

public static void init(List<PluginTypeInterface> pluginClasses, boolean simpleJndi) throws KettleException {
    SettableFuture<Boolean> ready;
    if (initialized.compareAndSet(null, ready = SettableFuture.create())) {

        try {// w w w.j  a v  a 2  s .  co m
            // This creates .kettle and kettle.properties...
            //
            if (!KettleClientEnvironment.isInitialized()) {
                KettleClientEnvironment.init();
            }

            // Configure Simple JNDI when we run in stand-alone mode (spoon, pan, kitchen, carte, ... NOT on the platform
            //
            if (simpleJndi) {
                JndiUtil.initJNDI();
            }

            // Register the native types and the plugins for the various plugin types...
            //
            pluginClasses.forEach(PluginRegistry::addPluginType);
            PluginRegistry.init();

            // Also read the list of variables.
            //
            KettleVariablesList.init();

            // Initialize the Lifecycle Listeners
            //
            initLifecycleListeners();
            ready.set(true);
        } catch (Throwable t) {
            ready.setException(t);
            // If it's a KettleException, throw it, otherwise wrap it in a KettleException
            throw ((t instanceof KettleException) ? (KettleException) t : new KettleException(t));
        }

    } else {
        // A different thread is initializing
        ready = initialized.get();
        // Block until environment is initialized
        try {
            ready.get();
        } catch (Throwable t) {
            // If it's a KettleException, throw it, otherwise wrap it in a KettleException
            throw ((t instanceof KettleException) ? (KettleException) t : new KettleException(t));
        }
    }
}

From source file:org.opendaylight.aaa.cert.impl.AaaCertRpcServiceImpl.java

@Override
public Future<RpcResult<Void>> setNodeCertifcate(SetNodeCertifcateInput input) {
    final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
    if (aaaCertProvider.addCertificateTrustStore(input.getNodeAlias(), input.getNodeCert())) {
        futureResult.set(RpcResultBuilder.<Void>success().build());
    } else {// w w w  . jav a  2  s .  co  m
        futureResult.set(RpcResultBuilder.<Void>failed().build());
        LOG.info("Error while adding the Node certificate");
    }
    return futureResult;
}

From source file:net.sourceforge.fullsync.ui.GuiController.java

private Future<Boolean> showQuestion(String question) {
    SettableFuture<Boolean> answer = SettableFuture.create();
    if (display == Display.findDisplay(Thread.currentThread())) {
        answer.set(doShowQuestion(question));
    } else {//from ww w . j a va  2s. c  om
        display.asyncExec(() -> answer.set(doShowQuestion(question)));
    }
    return answer;
}

From source file:org.opendaylight.aaa.cert.impl.AaaCertRpcServiceImpl.java

@Override
public Future<RpcResult<Void>> setODLCertifcate(SetODLCertifcateInput input) {
    final SettableFuture<RpcResult<Void>> futureResult = SettableFuture.create();
    if (aaaCertProvider.addCertificateODLKeyStore(input.getOdlCertAlias(), input.getOdlCert())) {
        futureResult.set(RpcResultBuilder.<Void>success().build());
    } else {//w  ww . j  a va2s.  co m
        futureResult.set(RpcResultBuilder.<Void>failed().build());
        LOG.info("Error while adding ODL certificate");
    }
    return futureResult;
}