@Override public Observable<Void> mapResponseToRequests(Observable<BatchReturnType> batchResponse, final Collection<CollapsedRequest<ResponseType, RequestArgumentType>> requests) { return batchResponse.single().doOnNext(new Action1<BatchReturnType>() { @Override public void call(BatchReturnType batchReturnType) { // this is a blocking call in HystrixCollapser self.mapResponseToRequests(batchReturnType, requests); } }).ignoreElements().cast(Void.class); }
public static <T> CompletableFuture<T> fromSingleObservable(Observable<T> observable) { CompletableFuture<T> future = new CompletableFuture<>(); observable.single().subscribe(future::complete, future::completeExceptionally); return future; }
@Override public void run() { Observable.just(1).single().subscribe(new Action1<Integer>() { @Override public void call(Integer integer) { log(integer); } }); } });
@Override public N1qlQueryResult query(N1qlQuery query, long timeout, TimeUnit timeUnit) { return Blocking.blockForSingle( couchbaseAsyncCluster .query(query) .flatMap(N1qlQueryExecutor.ASYNC_RESULT_TO_SYNC) .single(), timeout, timeUnit); }
@RequestMapping(method = GET, value = "/status") public DeferredResult<String> getStatusPageUrl() { DeferredResult<String> result = new DeferredResult<>(); notificationService.statusPageUrl().single() .subscribe( result::setResult, result::setErrorResult ); return result; }
Observable<Connection> connect(String username, String password, String database) { return stream.connect(new StartupMessage(username, database)) .flatMap(message -> authenticate(username, password, message)) .single(message -> message == ReadyForQuery.INSTANCE) .map(ready -> this); }
@Override public BucketSettings updateBucket(BucketSettings settings, long timeout, TimeUnit timeUnit) { return Blocking.blockForSingle(asyncClusterManager.updateBucket(settings).single(), timeout, timeUnit); }
@Override public DesignDocument upsertDesignDocument(final DesignDocument designDocument, final long timeout, final TimeUnit timeUnit) { return Blocking.blockForSingle( asyncBucketManager.upsertDesignDocument(designDocument).single(), timeout, timeUnit ); }
@Override public DesignDocument insertDesignDocument(final DesignDocument designDocument, final long timeout, final TimeUnit timeUnit) { return Blocking.blockForSingle( asyncBucketManager.insertDesignDocument(designDocument).single(), timeout, timeUnit ); }
@Override public DesignDocument insertDesignDocument(final DesignDocument designDocument, final boolean development, final long timeout, final TimeUnit timeUnit) { return Blocking.blockForSingle( asyncBucketManager.insertDesignDocument(designDocument, development).single(), timeout, timeUnit ); }
@Override public Boolean removeDesignDocument(final String name, final long timeout, final TimeUnit timeUnit) { return Blocking.blockForSingle( asyncBucketManager.removeDesignDocument(name).single(), timeout, timeUnit ); }
@Override public DesignDocument publishDesignDocument(final String name, final long timeout, final TimeUnit timeUnit) { return Blocking.blockForSingle( asyncBucketManager.publishDesignDocument(name).single(), timeout, timeUnit ); }
@Override public DesignDocument publishDesignDocument(final String name, final boolean overwrite, final long timeout, final TimeUnit timeUnit) { return Blocking.blockForSingle( asyncBucketManager.publishDesignDocument(name, overwrite).single(), timeout, timeUnit ); }
Observable<Connection> connect(String username, String password, String database) { return stream.connect(new StartupMessage(username, database)) .flatMap(message -> authenticate(username, password, message)) .single(message -> message == ReadyForQuery.INSTANCE) .map(ready -> this); }
protected Observable<DocumentProducerFeedResponse> produceOnSplit(Observable<DocumentProducer<T>> replacementProducers) { Observable<DocumentProducerFeedResponse> res = replacementProducers.toList().single().flatMap(documentProducers -> { RequestChargeTracker tracker = new RequestChargeTracker(); return OrderByUtils.orderedMerge(resourceType, consumeComparer, tracker, documentProducers) .map(orderByQueryResult -> resultPageFrom(tracker, orderByQueryResult)); }); return res; }
@Override public List<User> getUsers(AuthDomain domain, long timeout, TimeUnit timeUnit) { return Blocking.blockForSingle(asyncClusterManager.getUsers(domain).toList().single(), timeout, timeUnit); }
@Override public Observable<Void> mapResponseToRequests(Observable<BatchReturnType> batchResponse, final Collection<CollapsedRequest<ResponseType, RequestArgumentType>> requests) { return batchResponse.single().doOnNext(new Action1<BatchReturnType>() { @Override public void call(BatchReturnType batchReturnType) { // this is a blocking call in HystrixCollapser self.mapResponseToRequests(batchReturnType, requests); } }).ignoreElements().cast(Void.class); }
@Test public void sample_122() throws Exception { Observable<BigDecimal> totalPrice = Observable .just("bread", "butter", "milk", "tomato", "cheese") .subscribeOn(schedulerA) //BROKEN!!! .map(prod -> rxGroceries.doPurchase(prod, 1)) .reduce(BigDecimal::add) .single(); }
@Test public void sample_135() throws Exception { final Observable<BigDecimal> totalPrice = Observable .just("bread", "butter", "milk", "tomato", "cheese") .subscribeOn(schedulerA) .flatMap(prod -> rxGroceries.purchase(prod, 1)) .reduce(BigDecimal::add) .single(); }
@Test public void sample_145() throws Exception { Observable<BigDecimal> totalPrice = Observable .just("bread", "butter", "milk", "tomato", "cheese") .flatMap(prod -> rxGroceries .purchase(prod, 1) .subscribeOn(schedulerA)) .reduce(BigDecimal::add) .single(); }