@Override public Mono<QueryResponseMessage<I>> initialResult() { return MonoWrapper.<QueryResponseMessage<I>>create(monoSinkWrapper -> query(query) .thenAccept(monoSinkWrapper::success) .exceptionally(t -> { monoSinkWrapper.error(t); return null; })).getMono(); }
@SuppressWarnings("unchecked") @Override public <Q, I, U> SubscriptionQueryResult<QueryResponseMessage<I>, SubscriptionQueryUpdateMessage<U>> subscriptionQuery( SubscriptionQueryMessage<Q, I, U> query, SubscriptionQueryBackpressure backpressure, int updateBufferSize) { if (queryUpdateEmitter.queryUpdateHandlerRegistered(query)) { throw new IllegalArgumentException("There is already a subscription with the given message identifier"); } MonoWrapper<QueryResponseMessage<I>> initialResult = MonoWrapper.create(monoSink -> query(query) .thenAccept(monoSink::success) .exceptionally(t -> { logger.error(format("An error happened while trying to report an initial result. Query: %s", query), t); monoSink.error(t.getCause()); return null; })); UpdateHandlerRegistration<U> updateHandlerRegistration = queryUpdateEmitter .registerUpdateHandler(query, backpressure, updateBufferSize); return new DefaultSubscriptionQueryResult<>(initialResult.getMono(), updateHandlerRegistration.getUpdates(), updateHandlerRegistration.getRegistration()); }
@Override public Mono<QueryResponseMessage<I>> initialResult() { return MonoWrapper.<QueryResponseMessage<I>>create(monoSinkWrapper -> query(query) .thenAccept(monoSinkWrapper::success) .exceptionally(t -> { monoSinkWrapper.error(t); return null; })).getMono(); }
@Override public Mono<QueryResponseMessage<I>> initialResult() { return MonoWrapper.<QueryResponseMessage<I>>create(monoSinkWrapper -> query(query) .thenAccept(monoSinkWrapper::success) .exceptionally(t -> { monoSinkWrapper.error(t); return null; })).getMono(); }
@SuppressWarnings("unchecked") @Override public <Q, I, U> SubscriptionQueryResult<QueryResponseMessage<I>, SubscriptionQueryUpdateMessage<U>> subscriptionQuery( SubscriptionQueryMessage<Q, I, U> query, SubscriptionQueryBackpressure backpressure, int updateBufferSize) { if (queryUpdateEmitter.queryUpdateHandlerRegistered(query)) { throw new IllegalArgumentException("There is already a subscription with the given message identifier"); } MonoWrapper<QueryResponseMessage<I>> initialResult = MonoWrapper.create(monoSink -> query(query) .thenAccept(monoSink::success) .exceptionally(t -> { logger.error(format("An error happened while trying to report an initial result. Query: %s", query), t); monoSink.error(t.getCause()); return null; })); UpdateHandlerRegistration<U> updateHandlerRegistration = queryUpdateEmitter .registerUpdateHandler(query, backpressure, updateBufferSize); return new DefaultSubscriptionQueryResult<>(initialResult.getMono(), updateHandlerRegistration.getUpdates(), updateHandlerRegistration.getRegistration()); }
logger.error(format("An error happened while trying to report an initial result. Query: %s", query), t); monoSink.error(t.getCause()); return null; }));