io.vertx.core.AsyncResult#result ( )源码实例Demo

下面列出了io.vertx.core.AsyncResult#result ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: strimzi-kafka-bridge   文件: AmqpBridge.java
/**
 * Handler for connection opened by remote
 *
 * @param ar async result with info on related Proton connection
 */
private void processOpenConnection(AsyncResult<ProtonConnection> ar) {

    if (ar.succeeded()) {

        log.info("Connection opened by {} {}", ar.result().getRemoteHostname(), ar.result().getRemoteContainer());

        ProtonConnection connection = ar.result();
        connection.open();

        // new connection, preparing for hosting related sink/source endpoints
        if (!this.endpoints.containsKey(connection)) {
            this.endpoints.put(connection, new ConnectionEndpoint());
        }
    }
}
 
源代码2 项目: hono   文件: ConnectionFactoryImpl.java
private void handleTimedOutConnectionAttemptResult(final AsyncResult<ProtonConnection> conAttempt, final ProtonClientOptions clientOptions) {
    if (conAttempt.succeeded()) {
        logger.debug("ignoring successful connection attempt to AMQP 1.0 container [{}://{}:{}, role: {}]: attempt already timed out",
                clientOptions.isSsl() ? "amqps" : "amqp",
                config.getHost(),
                config.getPort(),
                config.getServerRole());
        final ProtonConnection downstreamConnection = conAttempt.result();
        downstreamConnection.disconnect();
    } else {
        logger.debug("ignoring failed connection attempt to AMQP 1.0 container [{}://{}:{}, role: {}]: attempt already timed out",
                clientOptions.isSsl() ? "amqps" : "amqp",
                config.getHost(),
                config.getPort(),
                config.getServerRole(),
                conAttempt.cause());
    }
}
 
源代码3 项目: raml-module-builder   文件: PostgresClient.java
/**
 * The returned handler first closes the SQLConnection and then passes on the AsyncResult to handler.
 *
 * <p>The returned Handler ignores (but logs) any failure when opening the connection (conn) or
 * closing the connection and always passes on the AsyncResult<T>. This is in contrast to
 * io.vertx.ext.sql.HandlerUtil.closeAndHandleResult where the connection
 * closing failure suppresses any result or failure of the AsyncResult<T> input.
 *
 * @param conn  the SQLConnection to close
 * @param handler  where to pass on the input AsyncResult
 * @return the Handler
 */
 <T> Handler<AsyncResult<T>> closeAndHandleResult(
    AsyncResult<SQLConnection> conn, Handler<AsyncResult<T>> handler) {

  return ar -> {
    if (conn.failed()) {
      log.error("Opening SQLConnection failed: " + conn.cause().getMessage(), conn.cause());
      handler.handle(ar);
      return;
    }
    SQLConnection sqlConnection = conn.result();
    if (sqlConnection.conn != null) {
      sqlConnection.conn.close();
    }
    cancelConnectionTimeoutTimer(sqlConnection);
    handler.handle(ar);
  };
}
 
源代码4 项目: prebid-server-java   文件: RemoteFileSyncer.java
private void handleSync(RemoteFileProcessor remoteFileProcessor, AsyncResult<Boolean> syncResult) {
    if (syncResult.succeeded()) {
        if (syncResult.result()) {
            logger.info("Sync service for {0}", saveFilePath);
            remoteFileProcessor.setDataPath(saveFilePath)
                    .setHandler(this::logFileProcessStatus);
        } else {
            logger.info("Sync is not required for {0}", saveFilePath);
        }
    } else {
        logger.error("Cant sync file from {0}", syncResult.cause(), downloadUrl);
    }

    // setup new update regardless of the result
    if (updatePeriod > 0) {
        vertx.setTimer(updatePeriod, idUpdateNew -> configureAutoUpdates(remoteFileProcessor));
    }
}
 
源代码5 项目: servicecomb-java-chassis   文件: ReadStreamPart.java
protected void onFileOpened(File file, AsyncResult<AsyncFile> ar, CompletableFuture<File> future) {
  if (ar.failed()) {
    future.completeExceptionally(ar.cause());
    return;
  }

  AsyncFile asyncFile = ar.result();
  CompletableFuture<Void> saveFuture = saveToWriteStream(asyncFile);
  saveFuture.whenComplete((v, saveException) -> {
    asyncFile.close(closeAr -> {
      if (closeAr.failed()) {
        LOGGER.error("Failed to close file {}.", file);
      }

      // whatever close success or failed
      // will not affect to result
      // result just only related to write
      if (saveException == null) {
        future.complete(file);
        return;
      }

      future.completeExceptionally(saveException);
    });
  });
}
 
private void completeFromAsyncResult(AsyncResult<T> ar) {
    if (ar.succeeded()) {
        super.complete(ar.result());
    } else {
        super.completeExceptionally(ar.cause());
    }
}
 
源代码7 项目: enmasse   文件: ApiClient.java
protected <T> void responseHandler(AsyncResult<HttpResponse<T>> ar, CompletableFuture<T> promise, Predicate<Integer> expectedCodePredicate,
        String expectedCodeOrCodes, String warnMessage, boolean throwException) {
    try {
        if (ar.succeeded()) {
            HttpResponse<T> response = ar.result();
            T body = response.body();
            if (expectedCodePredicate.negate().test(response.statusCode())) {
                log.error("expected-code: {}, response-code: {}, body: {}, op: {}", expectedCodeOrCodes, response.statusCode(), response.body(), warnMessage);
                promise.completeExceptionally(new RuntimeException("Status " + response.statusCode() + " body: " + (body != null ? body.toString() : null)));
            } else if (response.statusCode() < HTTP_OK || response.statusCode() >= HttpURLConnection.HTTP_MULT_CHOICE) {
                if (throwException) {
                    promise.completeExceptionally(new RuntimeException(body == null ? "null" : body.toString()));
                } else {
                    promise.complete(ar.result().body());
                }
            } else {
                promise.complete(ar.result().body());
            }
        } else {
            log.warn("Request failed: {}", warnMessage, ar.cause());
            promise.completeExceptionally(ar.cause());
        }
    } catch (io.vertx.core.json.DecodeException decEx) {
        if (ar.result().bodyAsString().toLowerCase().contains("application is not available")) {
            log.warn("'{}' is not available.", apiClientName(), ar.cause());
            throw new IllegalStateException(String.format("'%s' is not available.", apiClientName()));
        } else {
            log.warn("Unexpected object received", ar.cause());
            throw new IllegalStateException("JsonObject expected, but following object was received: " + ar.result().bodyAsString());
        }
    }
}
 
private void completeFromAsyncResult(AsyncResult<T> ar) {
    if (ar.succeeded()) {
        super.complete(ar.result());
    } else {
        super.completeExceptionally(ar.cause());
    }
}
 
源代码9 项目: prebid-server-java   文件: AuctionHandler.java
private PreBidResponse bidResponseOrError(AsyncResult<PreBidResponse> responseResult) {
    final MetricName responseStatus;

    final PreBidResponse result;

    if (responseResult.succeeded()) {
        responseStatus = MetricName.ok;
        result = responseResult.result();
    } else {
        final Throwable exception = responseResult.cause();
        final boolean isRequestInvalid = exception instanceof InvalidRequestException;

        responseStatus = isRequestInvalid ? MetricName.badinput : MetricName.err;

        if (!isRequestInvalid) {
            logger.error("Failed to process /auction request", exception);
        }

        result = error(isRequestInvalid || exception instanceof PreBidException
                ? exception.getMessage()
                : "Unexpected server error");
    }

    updateRequestMetric(responseStatus);

    return result;
}
 
源代码10 项目: raml-module-builder   文件: PostgresClient.java
/**
 * low-level getter based on CQLWrapper
 * @param <T>
 * @param conn
 * @param table
 * @param clazz
 * @param fieldName
 * @param wrapper
 * @param returnCount
 * @param returnIdField
 * @param facets
 * @param distinctOn
 * @param replyHandler
 */
private <T> void doGet(
  AsyncResult<SQLConnection> conn, String table, Class<T> clazz,
  String fieldName, CQLWrapper wrapper, boolean returnCount, boolean returnIdField,
  List<FacetField> facets, String distinctOn, Handler<AsyncResult<Results<T>>> replyHandler
) {

  if (conn.failed()) {
    log.error(conn.cause().getMessage(), conn.cause());
    replyHandler.handle(Future.failedFuture(conn.cause()));
    return;
  }
  PgConnection connection = conn.result().conn;
  try {
    QueryHelper queryHelper = buildQueryHelper(table, fieldName, wrapper, returnIdField, facets, distinctOn);
    if (returnCount) {
      processQueryWithCount(connection, queryHelper, GET_STAT_METHOD,
        totaledResults -> processResults(totaledResults.set, totaledResults.total, queryHelper.offset, queryHelper.limit, clazz), replyHandler);
    } else {
      processQuery(connection, queryHelper, null, GET_STAT_METHOD,
        totaledResults -> processResults(totaledResults.set, totaledResults.total, queryHelper.offset, queryHelper.limit, clazz), replyHandler);
    }
  } catch (Exception e) {
    log.error(e.getMessage(), e);
    replyHandler.handle(Future.failedFuture(e));
  }
}
 
源代码11 项目: prebid-server-java   文件: RemoteFileSyncer.java
private void handleFileExistsWithDelete(String filePath, AsyncResult<Boolean> existResult, Promise<Void> promise) {
    if (existResult.succeeded()) {
        if (existResult.result()) {
            fileSystem.delete(filePath, promise);
        } else {
            promise.complete();
        }
    } else {
        promise.fail(new PreBidException(String.format("Cant check if file exists %s", filePath)));
    }
}
 
源代码12 项目: prebid-server-java   文件: RemoteFileSyncer.java
private void handleFileOpenWithDownload(AsyncResult<AsyncFile> openResult, Promise<Void> promise) {
    if (openResult.succeeded()) {
        final AsyncFile asyncFile = openResult.result();
        try {
            httpClient.getAbs(downloadUrl, response -> pumpFileFromRequest(response, asyncFile, promise)).end();
        } catch (Exception e) {
            promise.fail(e);
        }
    } else {
        promise.fail(openResult.cause());
    }
}
 
源代码13 项目: servicecomb-java-chassis   文件: RedisSession.java
private void onGetResponse(AsyncResult<String> ar) {
  if (ar.succeeded()) {
    if (ar.result() == null) {
      createCache();
      return;
    }

    future.complete(ar.result());
    return;
  }

  future.completeExceptionally(ar.cause());
}
 
源代码14 项目: raml-module-builder   文件: PostgresClient.java
private void saveBatchInternal(AsyncResult<SQLConnection> sqlConnection, boolean upsert, String table,
                                List<Tuple> batch, Handler<AsyncResult<RowSet<Row>>> replyHandler) {

  try {
    long start = System.nanoTime();
    log.info("starting: saveBatch size=" + batch.size());
    String sql = INSERT_CLAUSE + schemaName + DOT + table + " (id, jsonb) VALUES ($1, $2)"
        + (upsert ? " ON CONFLICT (id) DO UPDATE SET jsonb = EXCLUDED.jsonb" : "")
        + RETURNING_ID;
    if (sqlConnection.failed()) {
      replyHandler.handle(Future.failedFuture(sqlConnection.cause()));
      return;
    }
    PgConnection connection = sqlConnection.result().conn;

    connection.preparedQuery(sql).executeBatch(batch, queryRes -> {
      if (queryRes.failed()) {
        log.error("saveBatch size=" + batch.size()
                + SPACE
                + queryRes.cause().getMessage(),
            queryRes.cause());
        statsTracker("saveBatchFailed", table, start);
        replyHandler.handle(Future.failedFuture(queryRes.cause()));
        return;
      }
      statsTracker("saveBatch", table, start);
      if (queryRes.result() != null) {
        replyHandler.handle(Future.succeededFuture(queryRes.result()));
      } else {
        replyHandler.handle(Future.succeededFuture(new LocalRowSet(0)));
      }
    });
  } catch (Exception e) {
    log.error(e.getMessage(), e);
    replyHandler.handle(Future.failedFuture(e));
  }
}
 
源代码15 项目: gravitee-gateway   文件: VertxCompletableFuture.java
private void completeFromAsyncResult(AsyncResult<T> ar) {
    if (ar.succeeded()) {
        super.complete(ar.result());
    } else {
        super.completeExceptionally(ar.cause());
    }
}
 
源代码16 项目: vertx-sql-client   文件: SimpleHolder.java
@Override
public void handle(AsyncResult<Connection> ar) {
  if (ar.succeeded()) {
    conn = ar.result();
  } else {
    failure = ar.cause();
  }
}
 
源代码17 项目: vertx-proton   文件: FutureHandler.java
public static <T> FutureHandler<T, AsyncResult<T>> asyncResult() {
  return new FutureHandler<T, AsyncResult<T>>() {
    @Override
    synchronized public void handle(AsyncResult<T> t) {
      if (t.succeeded()) {
        result = t.result();
      } else {
        exception = new ExecutionException(t.cause());
      }
      latch.countDown();
    }
  };
}
 
源代码18 项目: vxms   文件: ResponseExecution.java
private static <T> void handleStatefulError(
    String _methodId,
    ThrowableSupplier<T> _supplier,
    Promise<ExecutionResult<T>> _blockingHandler,
    Consumer<Throwable> _errorHandler,
    ThrowableFunction<Throwable, T> _onFailureRespond,
    Consumer<Throwable> _errorMethodHandler,
    VxmsShared vxmsShared,
    Throwable _t,
    int _retry,
    long _timeout,
    long _circuitBreakerTimeout,
    long _delay,
    Throwable e,
    Lock lck,
    Counter counter,
    AsyncResult<Long> valHandler) {
  //////////////////////////////////////////
  long count = valHandler.result();
  if (count <= DEFAULT_VALUE) {
    setCircuitBreakerReleaseTimer(vxmsShared, _retry, _circuitBreakerTimeout, counter);
    openCircuitBreakerAndHandleError(
        _blockingHandler,
        _errorHandler,
        _onFailureRespond,
        _errorMethodHandler,
        vxmsShared,
        e,
        lck,
        counter);
  } else {
    lck.release();
    org.jacpfx.vxms.event.response.basic.ResponseExecution.handleError(_errorHandler, e);
    handleDelay(_delay);
    createResponseBlocking(
        _methodId,
        _supplier,
        _blockingHandler,
        _errorHandler,
        _onFailureRespond,
        _errorMethodHandler,
        vxmsShared,
        _t,
        _retry,
        _timeout,
        _circuitBreakerTimeout,
        _delay);
  }
  ////////////////////////////////////////
}
 
源代码19 项目: vxms   文件: StepExecution.java
private static <T, V> void handleStatefulError(
        String _methodId,
        ThrowableFunction<T, V> step,
        T value,
        Promise<ExecutionResult<V>> _blockingHandler,
        Consumer<Throwable> _errorHandler,
        ThrowableFunction<Throwable, V> _onFailureRespond,
        Consumer<Throwable> _errorMethodHandler,
        VxmsShared vxmsShared,
        Throwable _t,
        int _retry,
        long _timeout,
        long _circuitBreakerTimeout,
        long _delay,
        Throwable e,
        Lock lck,
        Counter counter,
        AsyncResult<Long> valHandler) {
    //////////////////////////////////////////
    long count = valHandler.result();
    if (count <= DEFAULT_LONG_VALUE) {
        setCircuitBreakerReleaseTimer(vxmsShared, _retry, _circuitBreakerTimeout, counter);
        openCircuitBreakerAndHandleError(
                _blockingHandler,
                _errorHandler,
                _onFailureRespond,
                _errorMethodHandler,
                vxmsShared,
                e,
                lck,
                counter);
    } else {
        lck.release();
        org.jacpfx.vxms.rest.base.response.basic.ResponseExecution.handleError(_errorHandler, e);
        handleDelay(_delay);
        executeRetryAndCatchAsync(
                _methodId,
                step,
                value,
                _blockingHandler,
                _errorHandler,
                _onFailureRespond,
                _errorMethodHandler,
                vxmsShared,
                _t,
                _retry,
                _timeout,
                _circuitBreakerTimeout,
                _delay);
    }
    ////////////////////////////////////////
}
 
源代码20 项目: vxms   文件: ResponseExecution.java
private static <T> void handleStatefulError(
    String _methodId,
    ThrowableSupplier<T> _supplier,
    Promise<ExecutionResult<T>> _blockingHandler,
    Consumer<Throwable> _errorHandler,
    ThrowableFunction<Throwable, T> _onFailureRespond,
    Consumer<Throwable> _errorMethodHandler,
    VxmsShared vxmsShared,
    Throwable _t,
    int _retry,
    long _timeout,
    long _circuitBreakerTimeout,
    long _delay,
    Throwable e,
    Lock lck,
    Counter counter,
    AsyncResult<Long> valHandler) {
  //////////////////////////////////////////
  long count = valHandler.result();
  if (count <= DEFAULT_LONG_VALUE) {
    setCircuitBreakerReleaseTimer(vxmsShared, _retry, _circuitBreakerTimeout, counter);
    openCircuitBreakerAndHandleError(
        _blockingHandler,
        _errorHandler,
        _onFailureRespond,
        _errorMethodHandler,
        vxmsShared,
        e,
        lck,
        counter);
  } else {
    lck.release();
    org.jacpfx.vxms.rest.base.response.basic.ResponseExecution.handleError(_errorHandler, e);
    handleDelay(_delay);
    executeRetryAndCatchAsync(
        _methodId,
        _supplier,
        _blockingHandler,
        _errorHandler,
        _onFailureRespond,
        _errorMethodHandler,
        vxmsShared,
        _t,
        _retry,
        _timeout,
        _circuitBreakerTimeout,
        _delay);
  }
  ////////////////////////////////////////
}