protected void handleRecovery(Downstream<? super T> down, Throwable throwable) { try { if (recoverer != null) { down.success(recoverer.apply(throwable)); } else { down.error(throwable); } } catch (Throwable t) { down.error(t); } } }
Throwable t = new RequestNotPermitted("Request not permitted for limiter: " + rateLimiter.getName()); if (recoverer != null) { down.success(recoverer.apply(t)); } else { down.error(t);
.sorted(Comparator.comparing(RetryEvent::getCreationTime)) .map(RetryEventDTO::createRetryEventDTO).toJavaList(); d.success(new RetryEventsEndpointResponse(eventsList)); }).then(r -> ctx.render(Jackson.json(r))) ); .sorted(Comparator.comparing(RetryEvent::getCreationTime)) .map(RetryEventDTO::createRetryEventDTO).toJavaList(); d.success(new RetryEventsEndpointResponse(eventsList)); }).then(r -> ctx.render(Jackson.json(r))); .filter(event -> event.getEventType() == RetryEvent.Type.valueOf(eventType.toUpperCase())) .map(RetryEventDTO::createRetryEventDTO).toJavaList(); d.success(new RetryEventsEndpointResponse(eventsList)); }).then(r -> ctx.render(Jackson.json(r)));
.sorted(Comparator.comparing(RateLimiterEvent::getCreationTime)) .map(RateLimiterEventDTO::createRateLimiterEventDTO).toJavaList(); d.success(new RateLimiterEventsEndpointResponse(eventsList)); }).then(r -> ctx.render(Jackson.json(r))) ); .sorted(Comparator.comparing(RateLimiterEvent::getCreationTime)) .map(RateLimiterEventDTO::createRateLimiterEventDTO).toJavaList(); d.success(new RateLimiterEventsEndpointResponse(eventsList)); }).then(r -> ctx.render(Jackson.json(r))); .filter(event -> event.getEventType() == RateLimiterEvent.Type.valueOf(eventType.toUpperCase())) .map(RateLimiterEventDTO::createRateLimiterEventDTO).toJavaList(); d.success(new RateLimiterEventsEndpointResponse(eventsList)); }).then(r -> ctx.render(Jackson.json(r)));
.sorted(Comparator.comparing(BulkheadEvent::getCreationTime)) .map(BulkheadEventDTO::createEventDTO).toJavaList()); d.success(response); }).then(r -> ctx.render(Jackson.json(r))) ); .getBufferedEvents() .map(BulkheadEventDTO::createEventDTO).toJavaList()); d.success(response); }).then(r -> ctx.render(Jackson.json(r))); .filter(event -> event.getEventType() == BulkheadEvent.Type.valueOf(eventType.toUpperCase())) .map(BulkheadEventDTO::createEventDTO).toJavaList()); d.success(response); }).then(r -> ctx.render(Jackson.json(r)));
.sorted(Comparator.comparing(CircuitBreakerEvent::getCreationTime)) .map(CircuitBreakerEventDTOFactory::createCircuitBreakerEventDTO).toJavaList()); d.success(response); }).then(r -> ctx.render(Jackson.json(r))) ); .getBufferedEvents() .map(CircuitBreakerEventDTOFactory::createCircuitBreakerEventDTO).toJavaList()); d.success(response); }).then(r -> ctx.render(Jackson.json(r))); .filter(event -> event.getEventType() == CircuitBreakerEvent.Type.valueOf(eventType.toUpperCase())) .map(CircuitBreakerEventDTOFactory::createCircuitBreakerEventDTO).toJavaList()); d.success(response); }).then(r -> ctx.render(Jackson.json(r)));
@Override public void onComplete() { downstream.success(position - startAt); } }
protected void success(Downstream<? super T> downstream, T value) { if (!fired) { fired = true; downstream.success(value); } }
@Override public void success(T value) { Downstream.this.success(value); }
@Override public void success(T value) { Downstream.this.success(value); }
private static <T extends UserProfile> void toProfile(Class<T> type, Downstream<? super Optional<T>> downstream, Optional<UserProfile> userProfileOptional, Block onEmpty) throws Exception { if (userProfileOptional.isPresent()) { final UserProfile userProfile = userProfileOptional.get(); if (type.isInstance(userProfile)) { downstream.success(Optional.of(type.cast(userProfile))); } else { downstream.error(new ClassCastException("UserProfile is of type " + userProfile.getClass() + ", and is not compatible with " + type)); } } else { onEmpty.execute(); } }
@Override public Promise<Result> check(Registry registry) throws Exception { return Promise.of(upstream -> { try { session.execute(validationQuery); upstream.success(Result.healthy()); } catch (Exception ex) { logger.error("Cassandra connection is unhealthy", ex); upstream.success(Result.unhealthy("Cassandra connection is unhealthy")); } }); } }
@Override public void success(T value) { if (fire()) { continuation.resume(() -> downstream.success(value)); } else { DefaultExecution.LOGGER.error("", new OverlappingExecutionException("promise already fulfilled")); } }
@Override public Promise<List<T>> yield() { List<T> results = new ArrayList<>(); return Promise.async(d -> forEach((i, r) -> results.add(r)) .onError(d::error) .then(() -> d.success(results)) ); }
@Override public Promise<List<T>> yield() { List<Promise<T>> promises = Lists.newArrayList(this.promises); if (promises.isEmpty()) { return Promise.value(Collections.emptyList()); } List<T> results = Types.cast(promises); return Promise.async(d -> forEach(results::set).onError(d::error).then(() -> d.success(results))); }
protected void handleRecovery(Downstream<? super T> down, Throwable throwable) { try { if (recoverer != null) { down.success(recoverer.apply(throwable)); } else { down.error(throwable); } } catch (Throwable t) { down.error(t); } } }
/** * Signals this downstream, based on the given result. * * @param result the result to signal */ default void accept(Result<? extends T> result) { if (result.isError()) { error(result.getThrowable()); } else { success(result.getValue()); } }
@Override public Operation forEach(BiAction<? super Integer, ? super T> consumer) { return Promise.<Void>async(d -> yieldPromise(promises.iterator(), 0, (i, r) -> consumer.execute(i, r.getValue()), (i, r) -> { d.error(r.getThrowable()); return false; }, () -> d.success(null)) ).operation(); }
/** * Signals this downstream, based on the given result. * * @param result the result to signal */ default void accept(ExecResult<? extends T> result) { if (result.isComplete()) { complete(); } else if (result.isError()) { error(result.getThrowable()); } else { success(result.getValue()); } }