Skip to content

Commit ca464a5

Browse files
committed
Move the connection wrapping to the driver api
1 parent 65f7a8d commit ca464a5

File tree

12 files changed

+64
-39
lines changed

12 files changed

+64
-39
lines changed

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

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import io.vertx.core.Future;
1919
import io.vertx.core.Handler;
2020
import io.vertx.core.impl.CloseFuture;
21-
import io.vertx.core.impl.ContextInternal;
2221
import io.vertx.core.impl.VertxInternal;
2322
import io.vertx.core.spi.metrics.ClientMetrics;
2423
import io.vertx.db2client.DB2ConnectOptions;
@@ -27,10 +26,8 @@
2726
import io.vertx.sqlclient.PoolOptions;
2827
import io.vertx.sqlclient.SqlConnectOptions;
2928
import io.vertx.sqlclient.SqlConnection;
30-
import io.vertx.sqlclient.impl.Connection;
3129
import io.vertx.sqlclient.impl.PoolBase;
3230
import io.vertx.sqlclient.impl.tracing.QueryTracer;
33-
import io.vertx.sqlclient.spi.ConnectionFactory;
3431

3532
import java.util.function.Supplier;
3633

@@ -40,12 +37,6 @@ public DB2PoolImpl(VertxInternal vertx, int pipeliningLimit, PoolOptions poolOpt
4037
super(vertx, DB2Driver.INSTANCE, baseConnectOptions, connectOptionsProvider, tracer, metrics, pipeliningLimit, poolOptions, closeFuture);
4138
}
4239

43-
@SuppressWarnings("rawtypes")
44-
@Override
45-
protected DB2ConnectionImpl wrap(ContextInternal context, ConnectionFactory factory, Connection conn) {
46-
return new DB2ConnectionImpl(context, factory, conn, tracer, metrics);
47-
}
48-
4940
@Override
5041
public DB2Pool connectHandler(Handler<SqlConnection> handler) {
5142
return (DB2Pool) super.connectHandler(handler);

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,20 @@
1717

1818
import io.vertx.core.Vertx;
1919
import io.vertx.core.impl.CloseFuture;
20+
import io.vertx.core.impl.ContextInternal;
2021
import io.vertx.core.impl.VertxInternal;
2122
import io.vertx.core.spi.metrics.ClientMetrics;
2223
import io.vertx.core.spi.metrics.VertxMetrics;
2324
import io.vertx.db2client.DB2ConnectOptions;
2425
import io.vertx.db2client.DB2Pool;
2526
import io.vertx.db2client.impl.DB2ConnectionFactory;
27+
import io.vertx.db2client.impl.DB2ConnectionImpl;
2628
import io.vertx.db2client.impl.DB2PoolImpl;
2729
import io.vertx.db2client.impl.Db2PoolOptions;
2830
import io.vertx.sqlclient.PoolOptions;
2931
import io.vertx.sqlclient.SqlConnectOptions;
32+
import io.vertx.sqlclient.impl.Connection;
33+
import io.vertx.sqlclient.impl.SqlConnectionInternal;
3034
import io.vertx.sqlclient.impl.tracing.QueryTracer;
3135
import io.vertx.sqlclient.spi.Driver;
3236
import io.vertx.sqlclient.spi.ConnectionFactory;
@@ -65,4 +69,9 @@ public boolean acceptsOptions(SqlConnectOptions options) {
6569
public ConnectionFactory createConnectionFactory(Vertx vertx, SqlConnectOptions database) {
6670
return new DB2ConnectionFactory((VertxInternal) vertx, DB2ConnectOptions.wrap(database));
6771
}
72+
73+
@Override
74+
public SqlConnectionInternal wrapConnection(ContextInternal context, ConnectionFactory factory, Connection conn, QueryTracer tracer, ClientMetrics metrics) {
75+
return new DB2ConnectionImpl(context, factory, conn, tracer, metrics);
76+
}
6877
}

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import io.vertx.core.Future;
1515
import io.vertx.core.Handler;
1616
import io.vertx.core.impl.CloseFuture;
17-
import io.vertx.core.impl.ContextInternal;
1817
import io.vertx.core.impl.VertxInternal;
1918
import io.vertx.core.spi.metrics.ClientMetrics;
2019
import io.vertx.mssqlclient.MSSQLConnectOptions;
@@ -23,10 +22,8 @@
2322
import io.vertx.sqlclient.PoolOptions;
2423
import io.vertx.sqlclient.SqlConnectOptions;
2524
import io.vertx.sqlclient.SqlConnection;
26-
import io.vertx.sqlclient.impl.Connection;
2725
import io.vertx.sqlclient.impl.PoolBase;
2826
import io.vertx.sqlclient.impl.tracing.QueryTracer;
29-
import io.vertx.sqlclient.spi.ConnectionFactory;
3027

3128
import java.util.function.Supplier;
3229

@@ -36,11 +33,6 @@ public MSSQLPoolImpl(VertxInternal vertx, MSSQLConnectOptions baseConnectOptions
3633
super(vertx, MSSQLDriver.INSTANCE, baseConnectOptions, connectOptionsProvider, tracer, metrics, 1, poolOptions, closeFuture);
3734
}
3835

39-
@Override
40-
protected MSSQLConnectionImpl wrap(ContextInternal context, ConnectionFactory factory, Connection connection) {
41-
return new MSSQLConnectionImpl(context, factory, connection, tracer, metrics);
42-
}
43-
4436
@Override
4537
public MSSQLPool connectHandler(Handler<SqlConnection> handler) {
4638
return (MSSQLPool) super.connectHandler(handler);

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,19 @@
1717

1818
import io.vertx.core.Vertx;
1919
import io.vertx.core.impl.CloseFuture;
20+
import io.vertx.core.impl.ContextInternal;
2021
import io.vertx.core.impl.VertxInternal;
2122
import io.vertx.core.spi.metrics.ClientMetrics;
2223
import io.vertx.core.spi.metrics.VertxMetrics;
2324
import io.vertx.mssqlclient.MSSQLConnectOptions;
2425
import io.vertx.mssqlclient.MSSQLPool;
2526
import io.vertx.mssqlclient.impl.MSSQLConnectionFactory;
27+
import io.vertx.mssqlclient.impl.MSSQLConnectionImpl;
2628
import io.vertx.mssqlclient.impl.MSSQLPoolImpl;
2729
import io.vertx.sqlclient.PoolOptions;
2830
import io.vertx.sqlclient.SqlConnectOptions;
31+
import io.vertx.sqlclient.impl.Connection;
32+
import io.vertx.sqlclient.impl.SqlConnectionInternal;
2933
import io.vertx.sqlclient.impl.tracing.QueryTracer;
3034
import io.vertx.sqlclient.spi.Driver;
3135
import io.vertx.sqlclient.spi.ConnectionFactory;
@@ -68,4 +72,9 @@ public int appendQueryPlaceholder(StringBuilder queryBuilder, int index, int cur
6872
queryBuilder.append('@').append('P').append(1 + index);
6973
return index;
7074
}
75+
76+
@Override
77+
public SqlConnectionInternal wrapConnection(ContextInternal context, ConnectionFactory factory, Connection conn, QueryTracer tracer, ClientMetrics metrics) {
78+
return new MSSQLConnectionImpl(context, factory, conn, tracer, metrics);
79+
}
7180
}

vertx-mysql-client/src/main/java/io/vertx/mysqlclient/impl/MySQLPoolImpl.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import io.vertx.core.Future;
1515
import io.vertx.core.Handler;
1616
import io.vertx.core.impl.CloseFuture;
17-
import io.vertx.core.impl.ContextInternal;
1817
import io.vertx.core.impl.VertxInternal;
1918
import io.vertx.core.spi.metrics.ClientMetrics;
2019
import io.vertx.mysqlclient.MySQLConnectOptions;
@@ -23,10 +22,8 @@
2322
import io.vertx.sqlclient.PoolOptions;
2423
import io.vertx.sqlclient.SqlConnectOptions;
2524
import io.vertx.sqlclient.SqlConnection;
26-
import io.vertx.sqlclient.impl.Connection;
2725
import io.vertx.sqlclient.impl.PoolBase;
2826
import io.vertx.sqlclient.impl.tracing.QueryTracer;
29-
import io.vertx.sqlclient.spi.ConnectionFactory;
3027

3128
import java.util.function.Supplier;
3229

@@ -36,11 +33,6 @@ public MySQLPoolImpl(VertxInternal vertx, MySQLConnectOptions baseConnectOptions
3633
super(vertx, MySQLDriver.INSTANCE, baseConnectOptions, connectOptionsProvider, tracer, metrics, 1, poolOptions, closeFuture);
3734
}
3835

39-
@Override
40-
protected MySQLConnectionImpl wrap(ContextInternal context, ConnectionFactory factory, Connection conn) {
41-
return new MySQLConnectionImpl(context, factory, conn, tracer, metrics);
42-
}
43-
4436
@Override
4537
public MySQLPool connectHandler(Handler<SqlConnection> handler) {
4638
return (MySQLPool) super.connectHandler(handler);

vertx-mysql-client/src/main/java/io/vertx/mysqlclient/spi/MySQLDriver.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,19 @@
1717

1818
import io.vertx.core.Vertx;
1919
import io.vertx.core.impl.CloseFuture;
20+
import io.vertx.core.impl.ContextInternal;
2021
import io.vertx.core.impl.VertxInternal;
2122
import io.vertx.core.spi.metrics.ClientMetrics;
2223
import io.vertx.core.spi.metrics.VertxMetrics;
2324
import io.vertx.mysqlclient.MySQLConnectOptions;
2425
import io.vertx.mysqlclient.MySQLPool;
2526
import io.vertx.mysqlclient.impl.MySQLConnectionFactory;
27+
import io.vertx.mysqlclient.impl.MySQLConnectionImpl;
2628
import io.vertx.mysqlclient.impl.MySQLPoolImpl;
2729
import io.vertx.sqlclient.PoolOptions;
2830
import io.vertx.sqlclient.SqlConnectOptions;
31+
import io.vertx.sqlclient.impl.Connection;
32+
import io.vertx.sqlclient.impl.SqlConnectionInternal;
2933
import io.vertx.sqlclient.impl.tracing.QueryTracer;
3034
import io.vertx.sqlclient.spi.Driver;
3135
import io.vertx.sqlclient.spi.ConnectionFactory;
@@ -62,4 +66,9 @@ public boolean acceptsOptions(SqlConnectOptions options) {
6266
public ConnectionFactory createConnectionFactory(Vertx vertx, SqlConnectOptions database) {
6367
return new MySQLConnectionFactory((VertxInternal) vertx, MySQLConnectOptions.wrap(database));
6468
}
69+
70+
@Override
71+
public SqlConnectionInternal wrapConnection(ContextInternal context, ConnectionFactory factory, Connection conn, QueryTracer tracer, ClientMetrics metrics) {
72+
return new MySQLConnectionImpl(context, factory, conn, tracer, metrics);
73+
}
6574
}

vertx-pg-client/src/main/java/io/vertx/pgclient/impl/PgPoolImpl.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,14 @@
1919

2020
import io.vertx.core.Handler;
2121
import io.vertx.core.impl.CloseFuture;
22-
import io.vertx.core.impl.ContextInternal;
2322
import io.vertx.core.impl.VertxInternal;
2423
import io.vertx.core.spi.metrics.ClientMetrics;
2524
import io.vertx.pgclient.*;
2625
import io.vertx.pgclient.spi.PgDriver;
2726
import io.vertx.sqlclient.PoolOptions;
2827
import io.vertx.sqlclient.SqlConnection;
29-
import io.vertx.sqlclient.impl.Connection;
3028
import io.vertx.sqlclient.impl.PoolBase;
3129
import io.vertx.sqlclient.impl.tracing.QueryTracer;
32-
import io.vertx.sqlclient.spi.ConnectionFactory;
3330

3431
/**
3532
* Todo :
@@ -46,11 +43,6 @@ public PgPoolImpl(VertxInternal vertx, PgConnectOptions baseConnectOptions, Quer
4643
super(vertx, PgDriver.INSTANCE, baseConnectOptions, null, tracer, metrics, pipeliningLimit, poolOptions, closeFuture);
4744
}
4845

49-
@Override
50-
protected PgConnectionImpl wrap(ContextInternal context, ConnectionFactory factory, Connection conn) {
51-
return new PgConnectionImpl((PgConnectionFactory) factory, context, conn, tracer, metrics);
52-
}
53-
5446
@Override
5547
public PgPool connectHandler(Handler<SqlConnection> handler) {
5648
return (PgPool) super.connectHandler(handler);

vertx-pg-client/src/main/java/io/vertx/pgclient/spi/PgDriver.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,20 @@
22

33
import io.vertx.core.Vertx;
44
import io.vertx.core.impl.CloseFuture;
5+
import io.vertx.core.impl.ContextInternal;
56
import io.vertx.core.impl.VertxInternal;
67
import io.vertx.core.spi.metrics.ClientMetrics;
78
import io.vertx.core.spi.metrics.VertxMetrics;
89
import io.vertx.pgclient.PgConnectOptions;
910
import io.vertx.pgclient.PgPool;
1011
import io.vertx.pgclient.impl.PgConnectionFactory;
12+
import io.vertx.pgclient.impl.PgConnectionImpl;
1113
import io.vertx.pgclient.impl.PgPoolImpl;
1214
import io.vertx.pgclient.impl.PgPoolOptions;
1315
import io.vertx.sqlclient.PoolOptions;
1416
import io.vertx.sqlclient.SqlConnectOptions;
17+
import io.vertx.sqlclient.impl.Connection;
18+
import io.vertx.sqlclient.impl.SqlConnectionInternal;
1519
import io.vertx.sqlclient.impl.tracing.QueryTracer;
1620
import io.vertx.sqlclient.spi.Driver;
1721
import io.vertx.sqlclient.spi.ConnectionFactory;
@@ -56,4 +60,9 @@ public int appendQueryPlaceholder(StringBuilder queryBuilder, int index, int cur
5660
queryBuilder.append('$').append(1 + index);
5761
return index;
5862
}
63+
64+
@Override
65+
public SqlConnectionInternal wrapConnection(ContextInternal context, ConnectionFactory factory, Connection conn, QueryTracer tracer, ClientMetrics metrics) {
66+
return new PgConnectionImpl((PgConnectionFactory) factory, context, conn, tracer, metrics);
67+
}
5968
}

vertx-sql-client/src/main/java/io/vertx/sqlclient/impl/PoolBase.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import io.vertx.sqlclient.impl.command.CommandBase;
3131
import io.vertx.sqlclient.impl.pool.SqlConnectionPool;
3232
import io.vertx.sqlclient.impl.tracing.QueryTracer;
33-
import io.vertx.sqlclient.spi.ConnectionFactory;
3433
import io.vertx.sqlclient.spi.Driver;
3534

3635
import java.util.List;
@@ -147,7 +146,7 @@ public Future<SqlConnection> getConnection() {
147146
});
148147
}
149148
return promise.future().map(conn -> {
150-
SqlConnectionBase wrapper = wrap(current, conn.factory(), conn);
149+
SqlConnectionInternal wrapper = driver.wrapConnection(current, conn.factory(), conn, tracer, metrics);
151150
conn.init(wrapper);
152151
return wrapper;
153152
});
@@ -176,8 +175,6 @@ private void acquire(ContextInternal context, long timeout, Handler<AsyncResult<
176175
pool.acquire(context, timeout, completionHandler);
177176
}
178177

179-
protected abstract SqlConnectionBase wrap(ContextInternal context, ConnectionFactory factory, Connection conn);
180-
181178
@Override
182179
public void close(Promise<Void> completion) {
183180
doClose().onComplete(completion);
@@ -200,7 +197,7 @@ public Pool connectHandler(Handler<SqlConnection> handler) {
200197
if (handler != null) {
201198
connectionInitializer = conn -> {
202199
ContextInternal current = vertx.getContext();
203-
SqlConnectionBase wrapper = wrap(current, conn.factory(), conn);
200+
SqlConnectionInternal wrapper = driver.wrapConnection(current, conn.factory(), conn, tracer, metrics);
204201
conn.init(wrapper);
205202
current.dispatch(wrapper, handler);
206203
};

vertx-sql-client/src/main/java/io/vertx/sqlclient/impl/SqlConnectionBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
/**
3737
* @author <a href="mailto:julien@julienviet.com">Julien Viet</a>
3838
*/
39-
public class SqlConnectionBase<C extends SqlConnectionBase<C>> extends SqlClientBase implements SqlConnection, Connection.Holder {
39+
public class SqlConnectionBase<C extends SqlConnectionBase<C>> extends SqlClientBase implements SqlConnectionInternal {
4040

4141
private volatile Handler<Throwable> exceptionHandler;
4242
private volatile Handler<Void> closeHandler;

0 commit comments

Comments
 (0)