Skip to content

Commit e3ae921

Browse files
committed
Use now a Supplier<Future<SqlConnectOptions>> instead of Supplier<SqlConnectOptions>
1 parent d1cde8b commit e3ae921

File tree

38 files changed

+209
-170
lines changed

38 files changed

+209
-170
lines changed

vertx-db2-client/src/main/java/examples/SqlClientExamples.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -408,11 +408,11 @@ public static void poolSharing3(Vertx vertx, DB2ConnectOptions database, int max
408408
}
409409

410410
public void dynamicPoolConfig(Vertx vertx, DB2Pool pool) {
411+
// Do not forget to close later
412+
ConnectionFactory factory = DB2Driver.INSTANCE.createConnectionFactory(vertx);
411413
pool.connectionProvider(ctx -> {
412414
Future<DB2ConnectOptions> fut = retrieveOptions();
413415
return fut.compose(connectOptions -> {
414-
// Do not forget to close later
415-
ConnectionFactory factory = DB2Driver.INSTANCE.createConnectionFactory(vertx, connectOptions);
416416
return factory.connect(ctx, connectOptions);
417417
});
418418
});

vertx-db2-client/src/main/java/io/vertx/db2client/impl/DB2ConnectionFactory.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,11 @@
3333

3434
import java.util.Map;
3535
import java.util.function.Predicate;
36-
import java.util.function.Supplier;
3736

3837
public class DB2ConnectionFactory extends ConnectionFactoryBase<DB2ConnectOptions> {
3938

40-
public DB2ConnectionFactory(VertxInternal vertx, Supplier<DB2ConnectOptions> options) {
41-
super(vertx, options);
39+
public DB2ConnectionFactory(VertxInternal vertx) {
40+
super(vertx);
4241
}
4342

4443
@Override

vertx-db2-client/src/main/java/io/vertx/db2client/impl/DB2ConnectionImpl.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import io.vertx.db2client.spi.DB2Driver;
2525
import io.vertx.sqlclient.impl.Connection;
2626
import io.vertx.sqlclient.impl.SqlConnectionBase;
27-
import io.vertx.sqlclient.impl.tracing.QueryTracer;
2827
import io.vertx.sqlclient.spi.ConnectionFactory;
2928

3029
public class DB2ConnectionImpl extends SqlConnectionBase<DB2ConnectionImpl> implements DB2Connection {
@@ -33,7 +32,7 @@ public static Future<DB2Connection> connect(Vertx vertx, DB2ConnectOptions optio
3332
ContextInternal ctx = (ContextInternal) vertx.getOrCreateContext();
3433
DB2ConnectionFactory client;
3534
try {
36-
client = new DB2ConnectionFactory(ctx.owner(), () -> options);
35+
client = new DB2ConnectionFactory(ctx.owner());
3736
} catch (Exception e) {
3837
return ctx.failedFuture(e);
3938
}

vertx-db2-client/src/main/java/io/vertx/db2client/spi/DB2Driver.java

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package io.vertx.db2client.spi;
1717

18+
import io.vertx.core.Future;
1819
import io.vertx.core.Vertx;
1920
import io.vertx.core.impl.CloseFuture;
2021
import io.vertx.core.impl.ContextInternal;
@@ -40,7 +41,12 @@ public class DB2Driver implements Driver<DB2ConnectOptions> {
4041
public static final DB2Driver INSTANCE = new DB2Driver();
4142

4243
@Override
43-
public Pool newPool(Vertx vertx, Supplier<DB2ConnectOptions> databases, PoolOptions options, CloseFuture closeFuture) {
44+
public DB2ConnectOptions downcast(SqlConnectOptions connectOptions) {
45+
return connectOptions instanceof DB2ConnectOptions ? (DB2ConnectOptions) connectOptions : new DB2ConnectOptions(connectOptions);
46+
}
47+
48+
@Override
49+
public Pool newPool(Vertx vertx, Supplier<Future<DB2ConnectOptions>> databases, PoolOptions options, CloseFuture closeFuture) {
4450
VertxInternal vx = (VertxInternal) vertx;
4551
PoolImpl pool;
4652
if (options.isShared()) {
@@ -51,13 +57,11 @@ public Pool newPool(Vertx vertx, Supplier<DB2ConnectOptions> databases, PoolOpti
5157
return new DB2PoolImpl(vx, closeFuture, pool);
5258
}
5359

54-
private PoolImpl newPoolImpl(VertxInternal vertx, Supplier<DB2ConnectOptions> databases, PoolOptions options, CloseFuture closeFuture) {
55-
DB2ConnectOptions baseConnectOptions = DB2ConnectOptions.wrap(databases.get());
60+
private PoolImpl newPoolImpl(VertxInternal vertx, Supplier<Future<DB2ConnectOptions>> databases, PoolOptions options, CloseFuture closeFuture) {
5661
boolean pipelinedPool = options instanceof Db2PoolOptions && ((Db2PoolOptions) options).isPipelined();
57-
int pipeliningLimit = pipelinedPool ? baseConnectOptions.getPipeliningLimit() : 1;
58-
PoolImpl pool = new PoolImpl(vertx, this, pipeliningLimit, options, null, null, closeFuture);
59-
ConnectionFactory<DB2ConnectOptions> factory = createConnectionFactory(vertx, databases);
60-
pool.connectionProvider(context -> factory.connect(context, databases.get()));
62+
PoolImpl pool = new PoolImpl(vertx, this, pipelinedPool, options, null, null, closeFuture);
63+
ConnectionFactory<DB2ConnectOptions> factory = createConnectionFactory(vertx);
64+
pool.connectionProvider(context -> databases.get().compose(connectOptions -> factory.connect(context, connectOptions)));
6165
pool.init();
6266
closeFuture.add(factory);
6367
return pool;
@@ -75,13 +79,8 @@ public boolean acceptsOptions(SqlConnectOptions options) {
7579
}
7680

7781
@Override
78-
public ConnectionFactory<DB2ConnectOptions> createConnectionFactory(Vertx vertx, DB2ConnectOptions database) {
79-
return new DB2ConnectionFactory((VertxInternal) vertx, () -> DB2ConnectOptions.wrap(database));
80-
}
81-
82-
@Override
83-
public ConnectionFactory<DB2ConnectOptions> createConnectionFactory(Vertx vertx, Supplier<DB2ConnectOptions> database) {
84-
return new DB2ConnectionFactory((VertxInternal) vertx, () -> DB2ConnectOptions.wrap(database.get()));
82+
public ConnectionFactory<DB2ConnectOptions> createConnectionFactory(Vertx vertx) {
83+
return new DB2ConnectionFactory((VertxInternal) vertx);
8584
}
8685

8786
@Override

vertx-mssql-client/src/main/java/examples/SqlClientExamples.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -417,11 +417,11 @@ public static void poolSharing3(Vertx vertx, MSSQLConnectOptions database, int m
417417
}
418418

419419
public void dynamicPoolConfig(Vertx vertx, MSSQLPool pool) {
420+
// Do not forget to close later
421+
ConnectionFactory factory = MSSQLDriver.INSTANCE.createConnectionFactory(vertx);
420422
pool.connectionProvider(ctx -> {
421423
Future<MSSQLConnectOptions> fut = retrieveOptions();
422424
return fut.compose(connectOptions -> {
423-
// Do not forget to close later
424-
ConnectionFactory factory = MSSQLDriver.INSTANCE.createConnectionFactory(vertx, connectOptions);
425425
return factory.connect(ctx, connectOptions);
426426
});
427427
});

vertx-mssql-client/src/main/java/io/vertx/mssqlclient/MSSQLPool.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import io.vertx.core.Vertx;
2121
import io.vertx.mssqlclient.spi.MSSQLDriver;
2222
import io.vertx.sqlclient.*;
23+
import io.vertx.sqlclient.impl.SingletonSupplier;
2324

2425
import java.util.List;
2526
import java.util.function.Function;
@@ -76,7 +77,7 @@ static MSSQLPool pool(MSSQLConnectOptions database, PoolOptions options) {
7677
* Like {@link #pool(MSSQLConnectOptions, PoolOptions)} with a specific {@link Vertx} instance.
7778
*/
7879
static MSSQLPool pool(Vertx vertx, MSSQLConnectOptions database, PoolOptions options) {
79-
return pool(vertx, () -> database, options);
80+
return pool(vertx, SingletonSupplier.wrap(database), options);
8081
}
8182

8283
/**
@@ -107,15 +108,15 @@ static MSSQLPool pool(Vertx vertx, List<MSSQLConnectOptions> databases, PoolOpti
107108
* @return the connection pool
108109
*/
109110
@GenIgnore
110-
static MSSQLPool pool(Supplier<MSSQLConnectOptions> databases, PoolOptions options) {
111+
static MSSQLPool pool(Supplier<Future<MSSQLConnectOptions>> databases, PoolOptions options) {
111112
return pool(null, databases, options);
112113
}
113114

114115
/**
115116
* Like {@link #pool(Supplier, PoolOptions)} with a specific {@link Vertx} instance.
116117
*/
117118
@GenIgnore
118-
static MSSQLPool pool(Vertx vertx, Supplier<MSSQLConnectOptions> databases, PoolOptions options) {
119+
static MSSQLPool pool(Vertx vertx, Supplier<Future<MSSQLConnectOptions>> databases, PoolOptions options) {
119120
return (MSSQLPool) MSSQLDriver.INSTANCE.createPool(vertx, databases, options);
120121
}
121122

vertx-mssql-client/src/main/java/io/vertx/mssqlclient/impl/MSSQLConnectionFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636

3737
public class MSSQLConnectionFactory extends ConnectionFactoryBase<MSSQLConnectOptions> {
3838

39-
public MSSQLConnectionFactory(VertxInternal vertx, Supplier<MSSQLConnectOptions> options) {
40-
super(vertx, options);
39+
public MSSQLConnectionFactory(VertxInternal vertx) {
40+
super(vertx);
4141
}
4242

4343
@Override

vertx-mssql-client/src/main/java/io/vertx/mssqlclient/impl/MSSQLConnectionImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public MSSQLConnectionImpl(ContextInternal context, ConnectionFactory factory, C
3434

3535
public static Future<MSSQLConnection> connect(Vertx vertx, MSSQLConnectOptions options) {
3636
ContextInternal ctx = (ContextInternal) vertx.getOrCreateContext();
37-
MSSQLConnectionFactory client = new MSSQLConnectionFactory(ctx.owner(), () -> options);
37+
MSSQLConnectionFactory client = new MSSQLConnectionFactory(ctx.owner());
3838
ctx.addCloseHook(client);
3939
return (Future)client.connect(ctx, options);
4040
}

vertx-mssql-client/src/main/java/io/vertx/mssqlclient/spi/MSSQLDriver.java

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package io.vertx.mssqlclient.spi;
1717

18+
import io.vertx.core.Future;
1819
import io.vertx.core.Vertx;
1920
import io.vertx.core.impl.CloseFuture;
2021
import io.vertx.core.impl.ContextInternal;
@@ -31,7 +32,6 @@
3132
import io.vertx.sqlclient.impl.Connection;
3233
import io.vertx.sqlclient.impl.PoolImpl;
3334
import io.vertx.sqlclient.impl.SqlConnectionInternal;
34-
import io.vertx.sqlclient.impl.tracing.QueryTracer;
3535
import io.vertx.sqlclient.spi.ConnectionFactory;
3636
import io.vertx.sqlclient.spi.Driver;
3737

@@ -44,7 +44,12 @@ public class MSSQLDriver implements Driver<MSSQLConnectOptions> {
4444
public static final MSSQLDriver INSTANCE = new MSSQLDriver();
4545

4646
@Override
47-
public Pool newPool(Vertx vertx, Supplier<MSSQLConnectOptions> databases, PoolOptions options, CloseFuture closeFuture) {
47+
public MSSQLConnectOptions downcast(SqlConnectOptions connectOptions) {
48+
return connectOptions instanceof MSSQLConnectOptions ? (MSSQLConnectOptions) connectOptions : new MSSQLConnectOptions(connectOptions);
49+
}
50+
51+
@Override
52+
public Pool newPool(Vertx vertx, Supplier<Future<MSSQLConnectOptions>> databases, PoolOptions options, CloseFuture closeFuture) {
4853
VertxInternal vx = (VertxInternal) vertx;
4954
PoolImpl pool;
5055
if (options.isShared()) {
@@ -55,16 +60,20 @@ public Pool newPool(Vertx vertx, Supplier<MSSQLConnectOptions> databases, PoolOp
5560
return new MSSQLPoolImpl(vx, closeFuture, pool);
5661
}
5762

58-
private PoolImpl newPoolImpl(VertxInternal vertx, Supplier<MSSQLConnectOptions> databases, PoolOptions options, CloseFuture closeFuture) {
59-
MSSQLConnectOptions baseConnectOptions = MSSQLConnectOptions.wrap(databases.get());
60-
PoolImpl pool = new PoolImpl(vertx, this, 1, options, null, null, closeFuture);
61-
ConnectionFactory<MSSQLConnectOptions> factory = createConnectionFactory(vertx, databases);
62-
pool.connectionProvider(context -> factory.connect(context, databases.get()));
63+
private PoolImpl newPoolImpl(VertxInternal vertx, Supplier<Future<MSSQLConnectOptions>> databases, PoolOptions options, CloseFuture closeFuture) {
64+
PoolImpl pool = new PoolImpl(vertx, this, false, options, null, null, closeFuture);
65+
ConnectionFactory<MSSQLConnectOptions> factory = createConnectionFactory(vertx);
66+
pool.connectionProvider(context -> databases.get().compose(connectOptions -> factory.connect(context, connectOptions)));
6367
pool.init();
6468
closeFuture.add(factory);
6569
return pool;
6670
}
6771

72+
@Override
73+
public ConnectionFactory<MSSQLConnectOptions> createConnectionFactory(Vertx vertx) {
74+
return new MSSQLConnectionFactory((VertxInternal) vertx);
75+
}
76+
6877
@Override
6978
public MSSQLConnectOptions parseConnectionUri(String uri) {
7079
JsonObject conf = MSSQLConnectionUriParser.parse(uri, false);
@@ -76,16 +85,6 @@ public boolean acceptsOptions(SqlConnectOptions options) {
7685
return options instanceof MSSQLConnectOptions || SqlConnectOptions.class.equals(options.getClass());
7786
}
7887

79-
@Override
80-
public ConnectionFactory<MSSQLConnectOptions> createConnectionFactory(Vertx vertx, MSSQLConnectOptions database) {
81-
return new MSSQLConnectionFactory((VertxInternal) vertx, () -> MSSQLConnectOptions.wrap(database));
82-
}
83-
84-
@Override
85-
public ConnectionFactory<MSSQLConnectOptions> createConnectionFactory(Vertx vertx, Supplier<MSSQLConnectOptions> database) {
86-
return new MSSQLConnectionFactory((VertxInternal) vertx, () -> MSSQLConnectOptions.wrap(database.get()));
87-
}
88-
8988
@Override
9089
public int appendQueryPlaceholder(StringBuilder queryBuilder, int index, int current) {
9190
queryBuilder.append('@').append('P').append(1 + index);

vertx-mysql-client/src/main/java/examples/SqlClientExamples.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,11 +388,11 @@ public static void poolSharing3(Vertx vertx, MySQLConnectOptions database, int m
388388
}
389389

390390
public void dynamicPoolConfig(Vertx vertx, MySQLPool pool) {
391+
// Do not forget to close later
392+
ConnectionFactory factory = MySQLDriver.INSTANCE.createConnectionFactory(vertx);
391393
pool.connectionProvider(ctx -> {
392394
Future<MySQLConnectOptions> fut = retrieveOptions();
393395
return fut.compose(connectOptions -> {
394-
// Do not forget to close later
395-
ConnectionFactory factory = MySQLDriver.INSTANCE.createConnectionFactory(vertx, connectOptions);
396396
return factory.connect(ctx, connectOptions);
397397
});
398398
});

0 commit comments

Comments
 (0)