protected <R> Observable<R> wrap(Observable<R> observable) { if (scheduler != null) { return observable.subscribeOn(scheduler); } else { return observable; } }
@Override protected Observable<Boolean> construct() { return Observable.create(new OnSubscribe<Boolean>() { @Override public void call(Subscriber<? super Boolean> s) { results.isContextInitialized.set(HystrixRequestContext.isCurrentThreadInitialized()); results.originThread.set(Thread.currentThread()); s.onError(new RuntimeException("graceful onError")); } }).subscribeOn(userScheduler); }
@Override protected Observable<Boolean> construct() { return Observable.create(new OnSubscribe<Boolean>() { @Override public void call(Subscriber<? super Boolean> s) { s.onError(new RuntimeException("onError")); } }).subscribeOn(userScheduler); }
@Override protected Observable<Boolean> construct() { return Observable.create(new OnSubscribe<Boolean>() { @Override public void call(Subscriber<? super Boolean> s) { s.onError(new RuntimeException("onError")); } }).subscribeOn(userScheduler); }
@Override protected Observable<Boolean> construct() { return Observable.create(new OnSubscribe<Boolean>() { @Override public void call(Subscriber<? super Boolean> s) { results.isContextInitialized.set(HystrixRequestContext.isCurrentThreadInitialized()); results.originThread.set(Thread.currentThread()); throw new RuntimeException("bad onError"); } }).subscribeOn(userScheduler); }
@Override protected Observable<Boolean> resumeWithFallback() { return Observable.create(new OnSubscribe<Boolean>() { @Override public void call(Subscriber<? super Boolean> s) { results.isContextInitialized.set(HystrixRequestContext.isCurrentThreadInitialized()); results.originThread.set(Thread.currentThread()); s.onNext(false); s.onCompleted(); } }).subscribeOn(userScheduler); }
@Override protected Observable<Boolean> resumeWithFallback() { return Observable.create(new OnSubscribe<Boolean>() { @Override public void call(Subscriber<? super Boolean> s) { results.isContextInitialized.set(HystrixRequestContext.isCurrentThreadInitialized()); results.originThread.set(Thread.currentThread()); s.onNext(false); s.onCompleted(); } }).subscribeOn(userScheduler); }
@Override protected Observable<Boolean> construct() { return Observable.create(new OnSubscribe<Boolean>() { @Override public void call(Subscriber<? super Boolean> s) { results.isContextInitialized.set(HystrixRequestContext.isCurrentThreadInitialized()); results.originThread.set(Thread.currentThread()); s.onNext(true); s.onCompleted(); } }).subscribeOn(userScheduler); }
@Override protected Observable<Boolean> resumeWithFallback() { return Observable.create(new OnSubscribe<Boolean>() { @Override public void call(Subscriber<? super Boolean> s) { results.isContextInitialized.set(HystrixRequestContext.isCurrentThreadInitialized()); results.originThread.set(Thread.currentThread()); s.onNext(false); s.onCompleted(); } }).subscribeOn(userScheduler); }
@Override protected Observable<Boolean> resumeWithFallback() { return Observable.create(new OnSubscribe<Boolean>() { @Override public void call(Subscriber<? super Boolean> s) { results.isContextInitialized.set(HystrixRequestContext.isCurrentThreadInitialized()); results.originThread.set(Thread.currentThread()); s.onNext(false); s.onCompleted(); } }).subscribeOn(userScheduler); }
@Override protected Observable<Boolean> construct() { System.out.println("successfully executed"); return Observable.just(true).subscribeOn(Schedulers.computation()); }
@Override protected Observable<Boolean> resumeWithFallback() { return Observable.just(false).subscribeOn(Schedulers.computation()); } }
@Override protected Observable<T> construct() { executed = true; System.out.println("successfully executed"); return Observable.just(value).subscribeOn(Schedulers.computation()); }
@Override protected Observable<Boolean> construct() { System.out.println("successfully executed"); return Observable.just(true).subscribeOn(Schedulers.computation()); }
@Override protected Observable<String> construct() { executed = true; System.out.println("successfully executed"); return Observable.just(value).subscribeOn(Schedulers.computation()); }
@Override protected Observable<Boolean> construct() { System.out.println("successfully executed"); return Observable.just(true).subscribeOn(Schedulers.computation()); }
@Override public Object adapt(Call<R> call) { OnSubscribe<Response<R>> callFunc = isAsync ? new CallEnqueueOnSubscribe<>(call) : new CallExecuteOnSubscribe<>(call); OnSubscribe<?> func; if (isResult) { func = new ResultOnSubscribe<>(callFunc); } else if (isBody) { func = new BodyOnSubscribe<>(callFunc); } else { func = callFunc; } Observable<?> observable = Observable.create(func); if (scheduler != null) { observable = observable.subscribeOn(scheduler); } if (isSingle) { return observable.toSingle(); } if (isCompletable) { return observable.toCompletable(); } return observable; } }
@Override protected Observable<Integer> construct() { return Observable.just(1, 2, 3) .concatWith(Observable.<Integer> error(new RuntimeException("forced error"))) .subscribeOn(Schedulers.computation()); }
@Override protected Observable<Boolean> construct() { return Observable.just(false, true, false) .concatWith(Observable.<Boolean>error(new RuntimeException("forced error"))) .subscribeOn(Schedulers.computation()); }
@Override protected Observable<String> construct() { executed = true; return Observable.just(value).delay(duration, TimeUnit.MILLISECONDS).subscribeOn(Schedulers.computation()) .doOnNext(new Action1<String>() { @Override public void call(String t1) { System.out.println("successfully executed"); } }); }