.andThen( // Insert colors conn.rxUpdateWithParams("INSERT INTO colors (name) VALUES (?)", new JsonArray().add("BLACK")) .flatMap(updateResult -> conn.rxUpdateWithParams("INSERT INTO colors (name) VALUES (?)", new JsonArray().add("WHITE")))
@Override public Single convert(Completable result) throws Throwable { return result.andThen(Single.just(null)); } }
@Override public final ServiceFuture<Void> deleteByResourceGroupAsync(String groupName, String name, ServiceCallback<Void> callback) { return ServiceFuture.fromBody(deleteByResourceGroupAsync(groupName, name).andThen(Observable.<Void>just(null)), callback); }
@Override public void startFileDownload() { startDownloadSubscription = Observable.just(setupFileDownloader()) .flatMap(fileDownloader -> fileDownloader.startFileDownload() .andThen(handleFileDownloadProgress(fileDownloader))) .subscribe(); }
/** * Disconnect the {@link Client} and shut down all its owned resources. * * If custom state is used (like a shared {@link EventLoopGroup}), then they must be closed and managed * separately after this disconnect process has finished. * * @return a {@link Completable} signaling that the disconnect phase has been completed or failed. */ public Completable disconnect() { return conductor.stop().andThen(env.shutdown()); }
@Override public Completable call(Completable upstream) { return sqlConnection.rxSetAutoCommit(false).toCompletable() .andThen(upstream) .andThen(sqlConnection.rxCommit().toCompletable()) .onErrorResumeNext(throwable -> { return sqlConnection.rxRollback().toCompletable().onErrorComplete() .andThen(sqlConnection.rxSetAutoCommit(true).toCompletable().onErrorComplete()) .andThen(Completable.error(throwable)); }).andThen(sqlConnection.rxSetAutoCommit(true).toCompletable()); } }
@Override public Completable call(Completable upstream) { return sqlConnection.rxSetAutoCommit(false).toCompletable() .andThen(upstream) .andThen(sqlConnection.rxCommit().toCompletable()) .onErrorResumeNext(throwable -> { return sqlConnection.rxRollback().toCompletable().onErrorComplete() .andThen(sqlConnection.rxSetAutoCommit(true).toCompletable().onErrorComplete()) .andThen(Completable.error(throwable)); }).andThen(sqlConnection.rxSetAutoCommit(true).toCompletable()); } }
@Override public Completable removeDownload(String md5) { return downloadsRepository.getDownload(md5) .first() .flatMap(download -> getAppDownloader(download.getMd5()).flatMap( appDownloader -> appDownloader.removeAppDownload() .andThen(downloadsRepository.remove(md5)) .andThen(Observable.just(download)))) .doOnNext(download -> removeDownloadFiles(download)) .toCompletable(); }
@Override public Completable call(Throwable throwable) { return conductor.stop() .andThen(Completable.error(new BootstrapException("Could not connect to Cluster/Bucket", throwable))); } });
@Override public void dispatch(AsyncContext asyncContext, ResourceMethodDispatcher dispatcher, Object resource, ContainerRequest request) throws ProcessingException { final ContainerRequestContext requestContext = containerRequestContext.get(); Completable intercept = Observable.from(requestInterceptors) .concatMap(interceptor -> interceptor.intercept(requestContext)) .lastOrDefault(null) .toCompletable(); Single<?> dispatch = Single.defer(() -> (Single<?>) dispatcher.dispatch(resource, request).getEntity()); intercept.andThen(dispatch) .map(response -> response == null ? Response.noContent().build() : response) .subscribe(asyncContext::resume, asyncContext::resume); }
@Override public Single<T> call(Single<T> upstream) { return sqlConnection.rxSetAutoCommit(false).toCompletable() .andThen(upstream) .flatMap(item -> sqlConnection.rxCommit().toCompletable().andThen(Single.just(item))) .onErrorResumeNext(throwable -> { return sqlConnection.rxRollback().toCompletable().onErrorComplete() .andThen(sqlConnection.rxSetAutoCommit(true).toCompletable().onErrorComplete()) .andThen(Single.error(throwable)); }).flatMap(item -> sqlConnection.rxSetAutoCommit(true).toCompletable().andThen(Single.just(item))); } }
@Override public Single<T> call(Single<T> upstream) { return sqlConnection.rxSetAutoCommit(false).toCompletable() .andThen(upstream) .flatMap(item -> sqlConnection.rxCommit().toCompletable().andThen(Single.just(item))) .onErrorResumeNext(throwable -> { return sqlConnection.rxRollback().toCompletable().onErrorComplete() .andThen(sqlConnection.rxSetAutoCommit(true).toCompletable().onErrorComplete()) .andThen(Single.error(throwable)); }).flatMap(item -> sqlConnection.rxSetAutoCommit(true).toCompletable().andThen(Single.just(item))); } }
@Override public Completable init(ChunkMeta meta) { return ensureMerger(meta) .andThen(Completable.defer(() -> { if (meta instanceof XMLChunkMeta) { return xmlMerger.init((XMLChunkMeta)meta); } return geoJsonMerger.init((GeoJsonChunkMeta)meta); })); }
@Override public Completable merge(ChunkReadStream chunk, ChunkMeta meta, WriteStream<Buffer> out) { return ensureMerger(meta) .andThen(Completable.defer(() -> { if (meta instanceof XMLChunkMeta) { return xmlMerger.merge(chunk, (XMLChunkMeta)meta, out); } return geoJsonMerger.merge(chunk, (GeoJsonChunkMeta)meta, out); })); }
@Override public Observable<T> call(Observable<T> upstream) { return sqlConnection.rxSetAutoCommit(false).toCompletable() .andThen(upstream) .concatWith(sqlConnection.rxCommit().toCompletable().toObservable()) .onErrorResumeNext(throwable -> { return sqlConnection.rxRollback().toCompletable().onErrorComplete() .andThen(sqlConnection.rxSetAutoCommit(true).toCompletable().onErrorComplete()) .andThen(Observable.error(throwable)); }).concatWith(sqlConnection.rxSetAutoCommit(true).toCompletable().toObservable()); } }
@Override public Observable<T> call(Observable<T> upstream) { return sqlConnection.rxSetAutoCommit(false).toCompletable() .andThen(upstream) .concatWith(sqlConnection.rxCommit().toCompletable().toObservable()) .onErrorResumeNext(throwable -> { return sqlConnection.rxRollback().toCompletable().onErrorComplete() .andThen(sqlConnection.rxSetAutoCommit(true).toCompletable().onErrorComplete()) .andThen(Observable.error(throwable)); }).concatWith(sqlConnection.rxSetAutoCommit(true).toCompletable().toObservable()); } }
protected Completable rxInsertExtraFolks(SQLConnection conn) { return conn.rxExecute(String.format(INSERT_FOLK_SQL, "Georges")).toCompletable() .andThen(conn.rxExecute(String.format(INSERT_FOLK_SQL, "Henry")).toCompletable()); }
@Override public void setUp() throws Exception { super.setUp(); client = new JDBCClient(io.vertx.ext.jdbc.JDBCClient.createNonShared(vertx, config)); client.rxGetConnection().flatMapCompletable(conn -> { Completable setup = conn.rxExecute("drop table folks if exists").toCompletable() .andThen(conn.rxExecute("create table folks (firstname varchar(255) not null)").toCompletable()); for (String name : NAMES) { setup = setup.andThen(conn.rxExecute(String.format(INSERT_FOLK_SQL, name)).toCompletable()); } return setup.doAfterTerminate(conn::close); }).await(); }
private Single<List<String>> inTransaction(Exception e) throws Exception { return client.rxGetConnection().flatMap(conn -> { return rxInsertExtraFolks(conn) .andThen(uniqueNames(conn)) .<List<String>>collect(ArrayList::new, List::add).toSingle() .compose(upstream -> e == null ? upstream : upstream.flatMap(names -> Single.error(e))) .compose(SQLClientHelper.txSingleTransformer(conn)) .flatMap(names -> rxAssertAutoCommit(conn).andThen(Single.just(names))) .doAfterTerminate(conn::close); }); } }
private Observable<String> inTransaction(Exception e) throws Exception { return client.rxGetConnection().flatMapObservable(conn -> { return rxInsertExtraFolks(conn) .andThen(uniqueNames(conn)) .compose(upstream -> e == null ? upstream : upstream.concatWith(Observable.error(e))) .compose(SQLClientHelper.txObservableTransformer(conn)) .concatWith(rxAssertAutoCommit(conn).toObservable()) .doAfterTerminate(conn::close); }); } }