@Override public void failed(Throwable error) { if (error.getCause() instanceof IOException && retries.getAndIncrement() < 3) { // resend echoResource.resolveTemplate("echo", reqId).request().async().get(this); } else { System.out.print("!"); errors.offer(String.format("Request '%d' has failed: %s", reqId, error.toString())); latch.countDown(); } } });
@Benchmark public Response asyncBlock() throws Exception { return client.target("foo").request().async().get().get(); }
public final void forwardEvent(Event event, Position position, Set<Long> users) { Invocation.Builder requestBuilder = Context.getClient().target(url).request(); if (header != null && !header.isEmpty()) { for (Map.Entry<String, String> entry : splitKeyValues(header, ":").entries()) { requestBuilder = requestBuilder.header(entry.getKey(), entry.getValue()); } } executeRequest(event, position, users, requestBuilder.async()); }
public <V> CompletableFuture<T> post(final String queryResourceUrl, final V request) { CompletableFuture<T> result = new CompletableFuture(); final WebTarget webResource = client.target(queryResourceUrl); webResource .request(accept) .accept(accept) .async() .post(Entity.entity(request, contentType), new InvocationCallback<String>() { @Override public void completed(String complete) { buildResponse(result,complete); } @Override public void failed(Throwable ex) { result.completeExceptionally(ex); } }); return result; }
public CompletableFuture<T> delete(final String queryResourceUrl) { CompletableFuture<T> result = new CompletableFuture<>(); final WebTarget webResource = client.target(queryResourceUrl); webResource .request(accept) .accept(accept) .async() .delete(new InvocationCallback<String>() { @Override public void completed(String complete) { buildResponse(result,complete); } @Override public void failed(Throwable ex) { result.completeExceptionally(ex); } }); return result; } }
public <V> CompletableFuture<T> put(final String queryResourceUrl, final V request) { CompletableFuture<T> result = new CompletableFuture<>(); final WebTarget webResource = client.target(queryResourceUrl); webResource .request(accept) .accept(accept) .async() .put(Entity.entity(request, contentType), new InvocationCallback<String>() { @Override public void completed(String complete) { buildResponse(result,complete); } @Override public void failed(Throwable ex) { result.completeExceptionally(ex); } }); return result; } public CompletableFuture<T> delete(final String queryResourceUrl) {
@Override public void getLocation(Network network, final LocationProviderCallback callback) { if (network.getCellTowers() != null && !network.getCellTowers().isEmpty()) { CellTower cellTower = network.getCellTowers().iterator().next(); String request = String.format(url, cellTower.getMobileCountryCode(), cellTower.getMobileNetworkCode(), cellTower.getLocationAreaCode(), cellTower.getCellId()); Context.getClient().target(request).request().async().get(new InvocationCallback<JsonObject>() { @Override public void completed(JsonObject json) { if (json.containsKey("lat") && json.containsKey("lon")) { callback.onSuccess( json.getJsonNumber("lat").doubleValue(), json.getJsonNumber("lon").doubleValue(), 0); } else { callback.onFailure(new GeolocationException("Coordinates are missing")); } } @Override public void failed(Throwable throwable) { callback.onFailure(throwable); } }); } else { callback.onFailure(new GeolocationException("No network information")); } }
@Override public void getLocation(Network network, final LocationProviderCallback callback) { ObjectNode json = objectMapper.valueToTree(network); json.put("token", key); Context.getClient().target(url).request().async().post(Entity.json(json), new InvocationCallback<JsonObject>() { @Override public void completed(JsonObject json) { if (json.getString("status").equals("error")) { callback.onFailure(new GeolocationException(json.getString("message"))); } else { callback.onSuccess( json.getJsonNumber("lat").doubleValue(), json.getJsonNumber("lon").doubleValue(), json.getJsonNumber("accuracy").doubleValue()); } } @Override public void failed(Throwable throwable) { callback.onFailure(throwable); } }); }
@Override public void sendSync(long userId, Event event, Position position) { final User user = Context.getPermissionsManager().getUser(userId); if (user.getAttributes().containsKey("notificationTokens")) { Notification notification = new Notification(); notification.body = NotificationFormatter.formatShortMessage(userId, event, position).trim(); Message message = new Message(); message.tokens = user.getString("notificationTokens").split("[, ]"); message.notification = notification; Context.getClient().target(URL).request() .header("Authorization", "key=" + key) .async().post(Entity.json(message), new InvocationCallback<Object>() { @Override public void completed(Object o) { } @Override public void failed(Throwable throwable) { LOGGER.warn("Firebase notification error", throwable); } }); } }
@Override public void getLocation(Network network, final LocationProviderCallback callback) { AsyncInvoker invoker = Context.getClient().target(url).request().async(); invoker.post(Entity.json(network), new InvocationCallback<JsonObject>() { @Override public void completed(JsonObject json) { if (json.containsKey("error")) { callback.onFailure(new GeolocationException(json.getJsonObject("error").getString("message"))); } else { JsonObject location = json.getJsonObject("location"); callback.onSuccess( location.getJsonNumber("lat").doubleValue(), location.getJsonNumber("lng").doubleValue(), json.getJsonNumber("accuracy").doubleValue()); } } @Override public void failed(Throwable throwable) { callback.onFailure(throwable); } }); }
public CompletableFuture<T> get(final String url) { CompletableFuture<T> result = new CompletableFuture(); client.target(url).request(accept).accept(accept).async() .get(new InvocationCallback<String>() { @Override public void completed(String complete) { buildResponse(result, complete); } @Override public void failed(Throwable ex) { result.completeExceptionally(ex); } }); return result; } private void buildResponse(CompletableFuture<T> result,
@Override public void failed(final Throwable error) { if (error.getCause() instanceof IOException && retries.getAndIncrement() < 3) { // resend echoResource.resolveTemplate("echo", reqId).request().async().get(this); } else { invokeAndWait(new Runnable() { @Override public void run() { requestStatusLabel.setBackground(ERROR_COLOR); requestStatusLabel.setToolTipText(String.format("Request '%d' has failed: %s", reqId, error.toString())); latch.countDown(); } }); } } });
private <T> T request(final String method, final Class<T> clazz, final WebTarget resource, final Invocation.Builder request, final Entity<?> entity) throws DockerException, InterruptedException { try { return headers(request).async().method(method, entity, clazz).get(); } catch (ExecutionException | MultiException e) { throw propagate(method, resource, e); } }
private <T> T request(final String method, final GenericType<T> type, final WebTarget resource, final Invocation.Builder request) throws DockerException, InterruptedException { try { return headers(request).async().method(method, type).get(); } catch (ExecutionException | MultiException e) { throw propagate(method, resource, e); } }
private <T> T request(final String method, final Class<T> clazz, final WebTarget resource, final Invocation.Builder request) throws DockerException, InterruptedException { try { return headers(request).async().method(method, clazz).get(); } catch (ExecutionException | MultiException e) { throw propagate(method, resource, e); } }
@Override public void sendMessageAsync(final String destAddress, final String message, final boolean command) { getRequestBuilder().async().post( Entity.entity(preparePayload(destAddress, message), mediaType), new InvocationCallback<String>() { @Override public void completed(String s) { } @Override public void failed(Throwable throwable) { LOGGER.warn("SMS send failed", throwable); } }); }
private void request(final String method, final WebTarget resource, final Invocation.Builder request) throws DockerException, InterruptedException { try { headers(request).async().method(method, String.class).get(); } catch (ExecutionException | MultiException e) { throw propagate(method, resource, e); } }
@Override protected Position handlePosition(Position position) { if (json) { client.target(url).request().async().post(Entity.json(prepareJsonPayload(position))); } else { try { client.target(formatRequest(position)).request().async().get(); } catch (UnsupportedEncodingException | JsonProcessingException e) { LOGGER.warn("Forwarding formatting error", e); } } return position; }
@Benchmark public Future<Response> asyncIgnore() throws Exception { return client.target("foo").request().async().get(new InvocationCallback<Response>() { @Override public void completed(final Response response) { // NOOP } @Override public void failed(final Throwable throwable) { // NOOP } }); }
@Benchmark public Future<Response> asyncEntityIgnore() throws Exception { return client.target("foo").request().async().post(Entity.text("bar"), new InvocationCallback<Response>() { @Override public void completed(final Response response) { // NOOP } @Override public void failed(final Throwable throwable) { // NOOP } }); }