1616package io .vertx .db2client .spi ;
1717
1818import io .vertx .core .Future ;
19+ import io .vertx .core .Handler ;
1920import io .vertx .core .Vertx ;
2021import io .vertx .core .impl .CloseFuture ;
2122import io .vertx .core .impl .ContextInternal ;
2728import io .vertx .sqlclient .Pool ;
2829import io .vertx .sqlclient .PoolOptions ;
2930import io .vertx .sqlclient .SqlConnectOptions ;
31+ import io .vertx .sqlclient .SqlConnection ;
3032import io .vertx .sqlclient .impl .Connection ;
33+ import io .vertx .sqlclient .impl .CloseablePool ;
3134import io .vertx .sqlclient .impl .PoolImpl ;
3235import io .vertx .sqlclient .impl .SqlConnectionInternal ;
3336import io .vertx .sqlclient .spi .ConnectionFactory ;
@@ -47,22 +50,21 @@ public DB2ConnectOptions downcast(SqlConnectOptions connectOptions) {
4750 }
4851
4952 @ Override
50- public Pool newPool (Vertx vertx , Supplier <Future <DB2ConnectOptions >> databases , PoolOptions poolOptions , NetClientOptions transportOptions , CloseFuture closeFuture ) {
53+ public Pool newPool (Vertx vertx , Supplier <Future <DB2ConnectOptions >> databases , PoolOptions poolOptions , NetClientOptions transportOptions , Handler < SqlConnection > connectHandler , CloseFuture closeFuture ) {
5154 VertxInternal vx = (VertxInternal ) vertx ;
5255 PoolImpl pool ;
5356 if (poolOptions .isShared ()) {
54- pool = vx .createSharedResource (SHARED_CLIENT_KEY , poolOptions .getName (), closeFuture , cf -> newPoolImpl (vx , databases , poolOptions , transportOptions , cf ));
57+ pool = vx .createSharedResource (SHARED_CLIENT_KEY , poolOptions .getName (), closeFuture , cf -> newPoolImpl (vx , connectHandler , databases , poolOptions , transportOptions , cf ));
5558 } else {
56- pool = newPoolImpl (vx , databases , poolOptions , transportOptions , closeFuture );
59+ pool = newPoolImpl (vx , connectHandler , databases , poolOptions , transportOptions , closeFuture );
5760 }
58- return new DB2PoolImpl (vx , closeFuture , pool );
61+ return new CloseablePool <> (vx , closeFuture , pool );
5962 }
6063
61- private PoolImpl newPoolImpl (VertxInternal vertx , Supplier <Future <DB2ConnectOptions >> databases , PoolOptions options , NetClientOptions transportOptions , CloseFuture closeFuture ) {
64+ private PoolImpl newPoolImpl (VertxInternal vertx , Handler < SqlConnection > connectHandler , Supplier <Future <DB2ConnectOptions >> databases , PoolOptions options , NetClientOptions transportOptions , CloseFuture closeFuture ) {
6265 boolean pipelinedPool = options instanceof Db2PoolOptions && ((Db2PoolOptions ) options ).isPipelined ();
63- PoolImpl pool = new PoolImpl (vertx , this , pipelinedPool , options , null , null , closeFuture );
6466 ConnectionFactory <DB2ConnectOptions > factory = createConnectionFactory (vertx , transportOptions );
65- pool . connectionProvider ( context -> factory .connect (context , databases .get ()));
67+ PoolImpl pool = new PoolImpl ( vertx , this , pipelinedPool , options , null , null , context -> factory .connect (context , databases .get ()), connectHandler , closeFuture );
6668 pool .init ();
6769 closeFuture .add (factory );
6870 return pool ;
0 commit comments