List of usage examples for com.google.common.util.concurrent SettableFuture create
public static <V> SettableFuture<V> create()
From source file:com.facebook.presto.hive.util.AsyncWalker.java
public ListenableFuture<Void> beginWalk(Path path, FileStatusCallback callback) { SettableFuture<Void> future = SettableFuture.create(); recursiveWalk(path, callback, new AtomicLong(), future); return future; }
From source file:io.crate.autocomplete.InformationSchemaDataProvider.java
private ListenableFuture<List<String>> execute(String statement, Object[] args) { final SettableFuture<List<String>> result = SettableFuture.create(); transportAction.get().execute(new SQLRequest(statement, args), new ActionListener<SQLResponse>() { @Override// w w w .ja va 2 s .co m public void onResponse(SQLResponse response) { List<String> rows = new ArrayList<>(); for (Object[] objects : response.rows()) { rows.add((String) objects[0]); } result.set(rows); } @Override public void onFailure(Throwable e) { result.setException(e); } }); return result; }
From source file:com.microsoft.services.sharepoint.ListClient.java
/** * Gets lists.//from w w w .ja v a2 s . co m * * @param query the query * @return the lists */ public ListenableFuture<List<SPList>> getLists(Query query) { final SettableFuture<List<SPList>> result = SettableFuture.create(); String queryOData = generateODataQueryString(query); String getListsUrl = getSiteUrl() + "_api/web/lists/?" + queryEncode(queryOData); ListenableFuture<JSONObject> request = executeRequestJson(getListsUrl, "GET"); Futures.addCallback(request, new FutureCallback<JSONObject>() { @Override public void onFailure(Throwable t) { result.setException(t); } @Override public void onSuccess(JSONObject json) { try { List<SPList> list = SPList.listFromJson(json); result.set(list); } catch (JSONException e) { log(e); } } }); return result; }
From source file:com.google.gapid.server.ChildProcess.java
public ListenableFuture<T> start() { final ProcessBuilder pb = new ProcessBuilder(); // Use the base directory as the working directory for the server. pb.directory(GapiPaths.base());//from w w w . j av a2s. c om Exception prepareError = prepare(pb); if (prepareError != null) { return Futures.immediateFailedFuture(prepareError); } final SettableFuture<T> result = SettableFuture.create(); serverThread = new Thread(ChildProcess.class.getName() + "-" + name) { @Override public void run() { runProcess(result, pb); } }; serverThread.start(); return result; }
From source file:org.glowroot.central.util.MoreFutures.java
public static <V> ListenableFuture<V> onSuccessAndFailure(ListenableFuture<V> future, Runnable onSuccess, Runnable onFailure) {//from w w w.jav a 2s. co m SettableFuture<V> outerFuture = SettableFuture.create(); Futures.addCallback(future, new FutureCallback<V>() { @Override public void onSuccess(V result) { onSuccess.run(); outerFuture.set(result); } @Override public void onFailure(Throwable t) { logger.debug(t.getMessage(), t); onFailure.run(); outerFuture.setException(t); } }, MoreExecutors.directExecutor()); return outerFuture; }
From source file:org.retrostore.android.net.DataFetcher.java
/** * Turn the synchronous API requests into an asynchronous one and return a listenable future * with the result.// w w w . jav a 2 s . c o m */ public ListenableFuture<List<App>> getAppsAsync() { final SettableFuture<List<App>> future = SettableFuture.create(); mRequestExecutor.execute(new Runnable() { @Override public void run() { try { List<App> apps = mClient.fetchApps(0, 100); updateCache(apps); future.set(apps); } catch (ApiException e) { future.setException(e); } } }); return future; }
From source file:utils.teamcity.wallt.controller.api.ApiRequestController.java
@Override public <T extends ApiResponse> ListenableFuture<T> sendRequest(final ApiVersion version, final String path, final Class<T> expectedType) { final SettableFuture<T> apiResponseFuture = SettableFuture.create(); try {//from ww w . ja v a 2 s.c o m final ApiRequest request = ApiRequestBuilder.newRequest().to(_configuration.getServerUrl()) .forUser(_configuration.getCredentialsUser()) .withPassword(_configuration.getCredentialsPassword()).request(path).apiVersion(version) .build(); LOGGER.info("<< REQUEST: to {}", request); final AsyncHttpClient.BoundRequestBuilder httpRequest = _httpClient.prepareGet(request.getURI()) .addHeader(HttpHeaders.ACCEPT, "application/json"); if (!request.isGuestMode()) { final Realm realm = new Realm.RealmBuilder().setPrincipal(request.getUsername()) .setPassword(request.getPassword()).setUsePreemptiveAuth(true) .setScheme(Realm.AuthScheme.BASIC).build(); httpRequest.setRealm(realm); } if (_configuration.isUseProxy()) { // CODEREVIEW Let the user choose the protocol ? final ProxyServer proxyServer = new ProxyServer(ProxyServer.Protocol.HTTP, checkNotNull(_configuration.getProxyHost(), "Proxy hostname is not defined"), _configuration.getProxyPort(), _configuration.getProxyCredentialsUser(), _configuration.getProxyCredentialsPassword()); httpRequest.setProxyServer(proxyServer); } httpRequest.execute(new AsyncCompletionHandler<Void>() { @Override public void onThrowable(final Throwable t) { super.onThrowable(t); apiResponseFuture.setException(t); } @Override public Void onCompleted(final Response response) throws Exception { if (response.getStatusCode() != 200) { LOGGER.error(">> RESPONSE: for {} has status code {}", request, response.getStatusCode()); apiResponseFuture.setException(new ApiException("Http status code is " + response.getStatusCode() + " when requesting uri: " + response.getUri())); return null; } final String content = response.getResponseBody(Charsets.UTF_8.name()); LOGGER.debug(">> RESPONSE: for {} has content: {}", request, content); final Gson gson = new GsonBuilder().create(); final T jsonResponse = gson.fromJson(content, expectedType); apiResponseFuture.set(jsonResponse); return null; } }); } catch (Exception e) { apiResponseFuture.setException(e); } return apiResponseFuture; }
From source file:org.opendaylight.netconf.topology.impl.OnlySuccessStateAggregator.java
@Override public ListenableFuture<Node> combineUpdateAttempts(List<ListenableFuture<Node>> stateFutures) { final SettableFuture<Node> future = SettableFuture.create(); final ListenableFuture<List<Node>> allAsList = Futures.allAsList(stateFutures); Futures.addCallback(allAsList, new FutureCallback<List<Node>>() { @Override//w w w .java2 s. co m public void onSuccess(List<Node> result) { for (int i = 0; i < result.size() - 1; i++) { if (!result.get(i).equals(result.get(i + 1))) { future.setException(new IllegalStateException("Update futures have different result")); } } future.set(result.get(0)); } @Override public void onFailure(Throwable t) { LOG.error("One of the combined update attempts failed {}", t); future.setException(t); } }); return future; }
From source file:com.yeetor.engine.EngineDevice.java
public EngineDevice(AdbDevice iDevice) { this.device = iDevice; minitouch = new Minitouch(iDevice); SettableFuture future = SettableFuture.create(); minitouch.addEventListener(new MinitouchListener() { @Override/*from w ww.j a v a2 s . c om*/ public void onStartup(Minitouch minitouch, boolean success) { future.set(success); } @Override public void onClose(Minitouch minitouch) { minitouchOpen = false; } }); minitouch.start(); // Minitouch? try { Boolean success = (Boolean) future.get(); if (success) { minitouchOpen = true; } } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } }
From source file:c5db.SimpleModuleInformationProvider.java
public ListenableFuture<Service.State> startModule(C5Module module) { SettableFuture<Service.State> startedFuture = SettableFuture.create(); Service.Listener stateChangeListener = new SimpleC5ModuleListener(module, () -> { addRunningModule(module);/*w ww . j a va 2s .c o m*/ startedFuture.set(null); }, () -> removeModule(module), failureHandler); module.addListener(stateChangeListener, fiber); modules.put(module.getModuleType(), module); module.start(); return startedFuture; }