类com.google.common.util.concurrent.SettableFuture源码实例Demo

下面列出了怎么用com.google.common.util.concurrent.SettableFuture的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: Conversations   文件: WebRTCWrapper.java
ListenableFuture<SessionDescription> createOffer() {
    return Futures.transformAsync(getPeerConnectionFuture(), peerConnection -> {
        final SettableFuture<SessionDescription> future = SettableFuture.create();
        peerConnection.createOffer(new CreateSdpObserver() {
            @Override
            public void onCreateSuccess(SessionDescription sessionDescription) {
                future.set(sessionDescription);
            }

            @Override
            public void onCreateFailure(String s) {
                future.setException(new IllegalStateException("Unable to create offer: " + s));
            }
        }, new MediaConstraints());
        return future;
    }, MoreExecutors.directExecutor());
}
 
源代码2 项目: swellrt   文件: ServiceContext.java
/**
 * Clean up the internal state of this context. This will normally happen on a
 * session close
 */
public void reset() {

  // TODO clean text editor
  for (WaveContext wc : waveRegistry.values())
    wc.close();

  waveRegistry.clear();

  if (websocketClient != null) {
    websocketClient.stop(false);
    websocketClient = null;
  }

  serviceMultiplexerFuture = SettableFuture.<RemoteViewServiceMultiplexer> create();

  if (serviceSession != null) {
    serviceSession.destroy();
    serviceSession = null;
  }

}
 
private void waitForSomeNetworkToConnect() throws Exception {
  final SettableFuture<Void> future = SettableFuture.create();

  ConnectivityManager.NetworkCallback cb =
      new ConnectivityManager.NetworkCallback() {
        @Override
        public void onAvailable(Network network) {
          NetworkInfo netInfo = connManager.getNetworkInfo(network);
          if (netInfo != null && netInfo.isConnected()) {
            future.set(null);
          }
        }
      };

  connManager.requestNetwork(
      new NetworkRequest.Builder().addCapability(NET_CAPABILITY_INTERNET).build(), cb);

  try {
    future.get(NETWORK_STATE_CHANGE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
  } finally {
    connManager.unregisterNetworkCallback(cb);
  }
}
 
源代码4 项目: java-sdk   文件: DaprClientGrpcTest.java
@Test
public void invokeServiceByteRequestObjectTest() throws Exception {
  MyObject resultObj = new MyObject(1, "Value");
  SettableFuture<CommonProtos.InvokeResponse> settableFuture = SettableFuture.create();
  MockCallback<CommonProtos.InvokeResponse> callback =
      new MockCallback<CommonProtos.InvokeResponse>(CommonProtos.InvokeResponse.newBuilder()
          .setData(getAny(resultObj)).build());
  addCallback(settableFuture, callback, directExecutor());
  settableFuture.set(CommonProtos.InvokeResponse.newBuilder().setData(getAny(resultObj)).build());
  when(client.invokeService(any(DaprProtos.InvokeServiceRequest.class)))
      .thenReturn(settableFuture);
  String request = "Request";
  byte[] byteRequest = serializer.serialize(request);
  Mono<byte[]> result = adapter.invokeService(Verb.GET, "appId", "method", byteRequest, byte[].class);
  byte[] byteOutput = result.block();
  assertEquals(resultObj, serializer.deserialize(byteOutput, MyObject.class));
}
 
源代码5 项目: Elasticsearch   文件: ESDeleteTask.java
public ESDeleteTask(UUID jobId,
                    ESDeleteNode node,
                    TransportDeleteAction transport,
                    JobContextService jobContextService) {
    super(jobId, node.executionPhaseId(), node.docKeys().size(), jobContextService);
    List<DeleteRequest> requests = new ArrayList<>(node.docKeys().size());
    List<ActionListener> listeners = new ArrayList<>(node.docKeys().size());
    for (DocKeys.DocKey docKey : node.docKeys()) {
        DeleteRequest request = new DeleteRequest(
                ESGetTask.indexName(node.tableInfo(), docKey.partitionValues()),
                Constants.DEFAULT_MAPPING_TYPE, docKey.id());
        request.routing(docKey.routing());
        if (docKey.version().isPresent()) {
            request.version(docKey.version().get());
        }
        requests.add(request);
        SettableFuture<TaskResult> result = SettableFuture.create();
        results.add(result);
        listeners.add(new DeleteResponseListener(result));
    }

    createContext("delete", requests, listeners, transport, null);
}
 
源代码6 项目: rejoiner   文件: FuturesConverter.java
/** Converts an {@see ApiFuture} to a {@see ListenableFuture}. */
public static <T> ListenableFuture<T> apiFutureToListenableFuture(final ApiFuture<T> apiFuture) {
  SettableFuture<T> settableFuture = SettableFuture.create();
  ApiFutures.addCallback(
      apiFuture,
      new ApiFutureCallback<T>() {
        @Override
        public void onFailure(Throwable t) {
          settableFuture.setException(t);
        }

        @Override
        public void onSuccess(T result) {
          settableFuture.set(result);
        }
      });
  return settableFuture;
}
 
@NotNull
@Override
public ListenableFuture<Void> distributeToNonSharedSubscribers(@NotNull final Map<String, SubscriberWithIdentifiers> subscribers,
                                                               @NotNull final PUBLISH publish, @NotNull final ExecutorService executorService) {

    final ImmutableList.Builder<ListenableFuture<Void>> publishResultFutureBuilder = ImmutableList.builder();

    for (final Map.Entry<String, SubscriberWithIdentifiers> entry : subscribers.entrySet()) {
        final SubscriberWithIdentifiers subscriber = entry.getValue();

        final ListenableFuture<PublishStatus> publishFuture = sendMessageToSubscriber(publish, entry.getKey(), subscriber.getQos(),
                false, subscriber.isRetainAsPublished(), subscriber.getSubscriptionIdentifier());

        final SettableFuture<Void> publishFinishedFuture = SettableFuture.create();
        publishResultFutureBuilder.add(publishFinishedFuture);
        Futures.addCallback(publishFuture, new StandardPublishCallback(entry.getKey(), publish, publishFinishedFuture), executorService);
    }

    return FutureUtils.voidFutureFromList(publishResultFutureBuilder.build());
}
 
源代码8 项目: c5-replicator   文件: AsyncChannelAsserts.java
private ListenableFuture<T> future(Matcher<? super T> matcher) {
  SettableFuture<T> finished = SettableFuture.create();

  fiber.execute(() -> {
    synchronized (messageLog) {
      for (T element : messageLog) {
        if (matcher.matches(element)) {
          finished.set(element);
          return;
        }
      }
    }
    waitingToMatch.put(matcher, finished);
  });

  return finished;
}
 
@Test
public void test_void_future_from_list() throws Exception {
    final SettableFuture<Void> future1 = SettableFuture.create();
    final SettableFuture<Void> future2 = SettableFuture.create();

    final ImmutableList.Builder<ListenableFuture<Void>> builder = ImmutableList.builder();


    builder.add(future1).add(future2);
    final ListenableFuture<Void> resultFuture = FutureUtils.voidFutureFromList(builder.build());
    assertEquals(false, resultFuture.isDone());
    future1.set(null);
    assertEquals(false, resultFuture.isDone());
    future2.set(null);
    assertEquals(true, resultFuture.isDone());
}
 
源代码10 项目: connector-sdk   文件: FullTraversalConnectorTest.java
@Test
public void testTraverseExceptionInDeleteQueueItems() throws Exception {
  SettableFuture<Operation> result = SettableFuture.create();
  result.setException(new ExecutionException("outer", new IOException("inner")));
  doAnswer(invocation -> result).when(indexingServiceMock).deleteQueueItems(any());
  when(repositoryMock.getAllDocs(null))
      .thenReturn(
          new CheckpointCloseableIterableImpl.Builder<>(Collections.<ApiOperation>emptyList())
          .build());
  setConfig("0", DefaultAclChoices.PUBLIC);
  FullTraversalConnector connector =
      new FullTraversalConnector(repositoryMock, checkpointHandlerMock);
  connector.init(connectorContextMock);
  // No exception thrown.
  connector.traverse();
}
 
源代码11 项目: trickle   文件: TrickleErrorHandlingTest.java
@Test
public void shouldNotBlockOnUnterminatedInputFuture() throws Exception {
  Input<String> nonTerminating = Input.named("nonTerminating");
  Input<String> failing = Input.named("failing");

  RuntimeException expected = new RuntimeException("expected");

  SettableFuture<String> nonFuture = SettableFuture.create();
  ListenableFuture<String> failFuture = immediateFailedFuture(expected);

  Func2<String, String, String> func = new Func2<String, String, String>() {
    @Override
    public ListenableFuture<String> run(@Nullable String arg1, @Nullable String arg2) {
      return immediateFuture(arg1 + arg2);
    }
  };

  Graph<String> g = call(func).with(nonTerminating, failing);

  thrown.expect(hasAncestor(expected));

  g.bind(failing, failFuture).bind(nonTerminating, nonFuture).run().get();
}
 
源代码12 项目: consultant   文件: ConfigUpdaterTest.java
@Test(timeout = 10_000)
public void verifyFolderIsIgnored() throws Exception {
	CloseableHttpResponse response = mock(CloseableHttpResponse.class);
	when(response.getFirstHeader(eq("X-Consul-Index"))).thenReturn(new BasicHeader("X-Consul-Index", "1000"));
	when(response.getStatusLine()).thenReturn(createStatus(200, "OK"));
	when(response.getEntity()).thenReturn(toJson(ImmutableMap.of("some-prefix/oauth/", "some-value",
			"some-prefix/oauth/some.key", "some-value")));

	when(http.execute(any())).thenReturn(response);

	SettableFuture<Properties> future = SettableFuture.create();
	ConfigUpdater updater = new ConfigUpdater(executor, http, null, null, id, objectMapper, null, future::set,
			"some-prefix");

	updater.run();

	Properties properties = future.get();
	assertEquals(properties.keySet(), Sets.newHashSet("some.key"));
}
 
源代码13 项目: green_android   文件: PopupMethodResolver.java
@Override
public SettableFuture<String> method(List<String> methods) {
    final SettableFuture<String> future = SettableFuture.create();
    if (methods.size() == 1) {
        future.set(methods.get(0));
    } else {
        final MaterialDialog.Builder builder = UI.popup(activity, R.string.id_choose_method_to_authorize_the)
                                               .cancelable(false)
                                               .items(methods)
                                               .itemsCallbackSingleChoice(0, (dialog, v, which, text) -> {
            Log.d("RSV", "PopupMethodResolver CHOOSE callback");
            future.set(methods.get(which));
            return true;
        })
                                               .onNegative((dialog, which) -> {
            Log.d("RSV", "PopupMethodResolver CANCEL callback");
            future.set(null);
        });
        activity.runOnUiThread(() -> {
            Log.d("RSV", "PopupMethodResolver dialog show");
            builder.show();
        });
    }
    return future;
}
 
源代码14 项目: hadoop   文件: TestQuorumJournalManagerUnit.java
@Test
public void testWriteEditsOneSlow() throws Exception {
  EditLogOutputStream stm = createLogSegment();
  writeOp(stm, 1);
  stm.setReadyToFlush();
  
  // Make the first two logs respond immediately
  futureReturns(null).when(spyLoggers.get(0)).sendEdits(
      anyLong(), eq(1L), eq(1), Mockito.<byte[]>any());
  futureReturns(null).when(spyLoggers.get(1)).sendEdits(
      anyLong(), eq(1L), eq(1), Mockito.<byte[]>any());
  
  // And the third log not respond
  SettableFuture<Void> slowLog = SettableFuture.create();
  Mockito.doReturn(slowLog).when(spyLoggers.get(2)).sendEdits(
      anyLong(), eq(1L), eq(1), Mockito.<byte[]>any());
  stm.flush();
  
  Mockito.verify(spyLoggers.get(0)).setCommittedTxId(1L);
}
 
源代码15 项目: swellrt   文件: MemoryPerUserWaveViewHandlerImpl.java
@Override
public ListenableFuture<Void> onParticipantAdded(WaveletName waveletName, ParticipantId user) {
  Multimap<WaveId, WaveletId> perUserView = explicitPerUserWaveViews.getIfPresent(user);
  if (perUserView != null) {
    if (!perUserView.containsEntry(waveletName.waveId, waveletName.waveletId)) {
      perUserView.put(waveletName.waveId, waveletName.waveletId);
      if(LOG.isFineLoggable()) {
        LOG.fine("Added wavelet: " + waveletName + " to the view of user: " + user.getAddress());
        LOG.fine("View size is now: " + perUserView.size());
      }
    }
  }
  SettableFuture<Void> task = SettableFuture.create();
  task.set(null);
  return task;
}
 
源代码16 项目: bisq-core   文件: FeeRequest.java
public SettableFuture<Tuple2<Map<String, Long>, Map<String, Long>>> getFees(FeeProvider provider) {
    final SettableFuture<Tuple2<Map<String, Long>, Map<String, Long>>> resultFuture = SettableFuture.create();
    ListenableFuture<Tuple2<Map<String, Long>, Map<String, Long>>> future = executorService.submit(() -> {
        Thread.currentThread().setName("FeeRequest-" + provider.toString());
        return provider.getFees();
    });

    Futures.addCallback(future, new FutureCallback<Tuple2<Map<String, Long>, Map<String, Long>>>() {
        public void onSuccess(Tuple2<Map<String, Long>, Map<String, Long>> feeData) {
            log.debug("Received feeData of {}\nfrom provider {}", feeData, provider);
            resultFuture.set(feeData);
        }

        public void onFailure(@NotNull Throwable throwable) {
            resultFuture.setException(throwable);
        }
    });

    return resultFuture;
}
 
@Override
public void userEventTriggered(final ChannelHandlerContext ctx, final Object evt) throws Exception {

    final PUBLISH publish;
    final SettableFuture<PublishStatus> statusFuture;
    if (evt instanceof PublishWithFuture) {
        publish = ((PublishWithFuture) evt);
        statusFuture = ((PublishWithFuture) evt).getFuture();
        writePublish(ctx, publish, statusFuture);
    } else if (evt instanceof PUBLISH) {
        publish = (PUBLISH) evt;
        writePublish(ctx, publish, null);
    } else {
        super.userEventTriggered(ctx, evt);
    }

}
 
源代码18 项目: pubsub   文件: LocalComputeResourceController.java
@Override
public ListenableFuture<List<Client>> startClients() {
  SettableFuture<List<Client>> future = SettableFuture.create();
  executor.execute(
      () -> {
        List<Client> toReturn = new ArrayList<>();
        for (int i = 0; i < numWorkers; i++) {
          try {
            Integer port = getPort();
            runClientProcess(params.getClientType(), port);
            toReturn.add(new Client("localhost", params, executor, port));
          } catch (Exception e) {
            future.setException(e);
            return;
          }
        }

        future.set(toReturn);
      });
  return future;
}
 
源代码19 项目: connector-sdk   文件: ListingConnectorTest.java
@Test
public void testGetDocRepositoryDoc() throws Exception {
  setDefaultConfig();
  Item polledItem = new Item().setName("docId");
  SettableFuture<Item> updateFuture = SettableFuture.create();
  doAnswer(
          invocation -> {
            updateFuture.set(new Item());
            return updateFuture;
          })
      .when(mockIndexingService)
      .indexItem(polledItem, RequestMode.UNSPECIFIED);
  when(mockRepository.getDoc(polledItem))
      .thenReturn(new RepositoryDoc.Builder().setItem(polledItem).build());
  ListingConnector connector = new ListingConnector(mockRepository);
  connector.init(mockConnectorContext);
  connector.process(polledItem);
  verify(mockIndexingService).indexItem(polledItem, RequestMode.UNSPECIFIED);
}
 
源代码20 项目: presto   文件: TestWorkProcessor.java
@Test(timeOut = 10_000)
public void testCreateFrom()
{
    SettableFuture<?> future = SettableFuture.create();
    List<ProcessState<Integer>> scenario = ImmutableList.of(
            ProcessState.yield(),
            ProcessState.ofResult(1),
            ProcessState.blocked(future),
            ProcessState.yield(),
            ProcessState.ofResult(2),
            ProcessState.finished());
    WorkProcessor<Integer> processor = processorFrom(scenario);

    // before
    assertFalse(processor.isBlocked());
    assertFalse(processor.isFinished());

    assertYields(processor);
    assertResult(processor, 1);
    assertBlocks(processor);
    assertUnblocks(processor, future);
    assertYields(processor);
    assertResult(processor, 2);
    assertFinishes(processor);
}
 
源代码21 项目: presto   文件: AsyncQueue.java
public synchronized ListenableFuture<?> offer(T element)
{
    requireNonNull(element);

    if (finishing && borrowerCount == 0) {
        return immediateFuture(null);
    }
    elements.add(element);
    int newSize = elements.size();
    if (newSize == 1) {
        completeAsync(executor, notEmptySignal);
        notEmptySignal = SettableFuture.create();
    }
    if (newSize >= targetQueueSize) {
        return notFullSignal;
    }
    return immediateFuture(null);
}
 
源代码22 项目: ProjectAres   文件: CatchingExecutorService.java
default <T> ListenableFuture<T> submit(ThrowingRunnable<?> task, T result, @Nullable StackTrace source) {
    final SettableFuture<T> future = SettableFuture.create();
    executeCatch(() -> {
        try {
            task.runThrows();
        } catch(Throwable ex) {
            future.setException(ex);
            throw ex;
        }
        future.set(result);
    }, source);
    return future;
}
 
源代码23 项目: arcusplatform   文件: TestAlarmSubsystem_Sirens.java
@Test
public void testCancel() throws Exception {
	stageAlerting(PanicAlarm.NAME);
	expectCancelIncidentAndReturn(SettableFuture.<Void>create(), stageAlarmIncident(PanicAlarm.NAME));
	start();
	
	cancel();
	assertQuietSent();
}
 
源代码24 项目: arcusplatform   文件: TestProtocolBusService.java
@Test
@Ignore
public void testAddServiceListener() throws Exception {
   Address destination = Address.fromString("PROT:ZWAV-ABC-1234:" + ProtocolDeviceId.fromBytes(new byte [] { 22 }).getRepresentation());
   ProtocolMessage protocolMessage = ProtocolMessage.createProtocolMessage(
         Address.fromString("DRIV:dev:6ff3a5ff-4650-4ce7-82e0-682a58392316"),
         destination,
         ZWaveProtocol.INSTANCE,
         new ZWaveCommandMessage()
   );
   final SettableFuture<Boolean> future = SettableFuture.create();
   ProtocolBusService protocolBusService = ServiceLocator.getInstance(ProtocolBusService.class);
   protocolBusService.addProtocolListener(new ProtocolBusListener() {

      @Override
      public void onMessage(ClientToken ct, ProtocolMessage msg) {
         try {
            Assert.assertEquals("Client Token key should be hub ID", "ABC-1234", ct.getRepresentation());
            Assert.assertEquals("PROT:ZWAV-ABC-1234:FgAAAAAAAAAAAAAAAAAAAAAAAAA=", msg.getDestination().getRepresentation());
            Assert.assertEquals("DRIV:dev:6ff3a5ff-4650-4ce7-82e0-682a58392316", msg.getSource().getRepresentation());
            Assert.assertEquals(destination, msg.getDestination());
            future.set(true);
         }
         catch(Throwable t) {
            future.setException(t);
         }
      }

   });

   protocolBus.send(protocolMessage);
   boolean messageReceivedFlag = future.get(300, TimeUnit.MILLISECONDS);

   Assert.assertTrue("Message should have arrived.", messageReceivedFlag);
}
 
源代码25 项目: green_android   文件: Peer.java
/** Sends a getaddr request to the peer and returns a future that completes with the answer once the peer has replied. */
public ListenableFuture<AddressMessage> getAddr() {
    SettableFuture<AddressMessage> future = SettableFuture.create();
    synchronized (getAddrFutures) {
        getAddrFutures.add(future);
    }
    sendMessage(new GetAddrMessage(params));
    return future;
}
 
源代码26 项目: hermes   文件: ProduceAndConsume.java
private void runProducer() {
	new Thread(new Runnable() {
		@Override
		public void run() {
			Producer p = lookup(Producer.class);

			for (;;) {
				SettableFuture<SendResult> future = (SettableFuture<SendResult>) p.message(TOPIC, null, sendCount.get())
				      .send();

				Futures.addCallback(future, new FutureCallback<SendResult>() {
					@Override
					public void onSuccess(SendResult result) {
						sendCount.addAndGet(1);
					}

					@Override
					public void onFailure(Throwable t) {
						sendCount.addAndGet(1);
					}
				});

				// try {
				// Thread.sleep(1);
				// } catch (InterruptedException e) {
				// e.printStackTrace();
				// }
			}
		}
	}).start();
}
 
源代码27 项目: qmq   文件: CompositePullEntry.java
@Override
public void online(StatusSource src) {
    synchronized (onlineSwitcher) {
        onlineSwitcher.on(src);
        final SettableFuture<Boolean> future = this.onlineFuture;
        if (future == null) return;
        future.set(true);
    }
    LOGGER.info("pullconsumer online. subject={}, group={}", getSubject(), getConsumerGroup());
    pullEntryMap.values().forEach(pe -> pe.online(src));
}
 
源代码28 项目: java-sdk   文件: DaprClientGrpcTest.java
@Test
public void publishEventObjectTest() {
  SettableFuture<Empty> settableFuture = SettableFuture.create();
  MockCallback<Empty> callback = new MockCallback<Empty>(Empty.newBuilder().build());
  addCallback(settableFuture, callback, directExecutor());
  when(client.publishEvent(any(DaprProtos.PublishEventRequest.class)))
      .thenReturn(settableFuture);
  MyObject event = new MyObject(1, "Event");
  Mono<Void> result = adapter.publishEvent("topic", event);
  settableFuture.set(Empty.newBuilder().build());
  result.block();
  assertTrue(callback.wasCalled);
}
 
源代码29 项目: jesos   文件: HttpProtocolSender.java
@Override
public void onResponse(final Response response) throws IOException
{
    final Object tag = response.request().tag();
    checkState(tag != null, "saw a request with null tag");

    final SettableFuture<Void> future = inFlight.remove(tag);
    checkState(future != null, "Saw tag %s but not in in flight map", tag);
    future.set(null);

    LOG.debug("Response %s %s: %d", response.request().method(), response.request().urlString(), response.code());
}
 
源代码30 项目: grpc-nebula-java   文件: ServerImpl.java
@Override
public ListenableFuture<ServerStats> getStats() {
  ServerStats.Builder builder
      = new ServerStats.Builder()
      .setListenSockets(transportServer.getListenSockets());
  serverCallTracer.updateBuilder(builder);
  SettableFuture<ServerStats> ret = SettableFuture.create();
  ret.set(builder.build());
  return ret;
}
 
 同包方法