From 5d67864b8fe5b063c1ed6a63d3e659e4783ba449 Mon Sep 17 00:00:00 2001 From: Thomas Segismont Date: Tue, 10 Mar 2026 14:25:15 +0100 Subject: [PATCH] Drivers should create a connection factory with transport options Otherwise, user provided transport options will not be taken into account when creating connections (e.g. TCP_NODELAY). Also, remove redundant OracleConnectionFactory Vertx param. OracleConnectionFactory does not need it Signed-off-by: Thomas Segismont --- .../mssqlclient/impl/MSSQLConnectionFactory.java | 11 ++++++++--- .../io/vertx/mssqlclient/spi/MSSQLDriver.java | 6 +++--- .../mysqlclient/impl/MySQLConnectionFactory.java | 12 ++++++------ .../io/vertx/mysqlclient/spi/MySQLDriver.java | 11 +++++++---- .../impl/OracleConnectionFactory.java | 2 +- .../oracleclient/impl/OracleConnectionImpl.java | 4 ++-- .../io/vertx/oracleclient/spi/OracleDriver.java | 12 +++++++----- .../vertx/pgclient/impl/PgConnectionFactory.java | 16 ++++++++++------ .../java/io/vertx/pgclient/spi/PgDriver.java | 10 +++++----- 9 files changed, 49 insertions(+), 35 deletions(-) diff --git a/vertx-mssql-client/src/main/java/io/vertx/mssqlclient/impl/MSSQLConnectionFactory.java b/vertx-mssql-client/src/main/java/io/vertx/mssqlclient/impl/MSSQLConnectionFactory.java index 1d6f856de4..48313e18d6 100644 --- a/vertx-mssql-client/src/main/java/io/vertx/mssqlclient/impl/MSSQLConnectionFactory.java +++ b/vertx-mssql-client/src/main/java/io/vertx/mssqlclient/impl/MSSQLConnectionFactory.java @@ -16,16 +16,17 @@ import io.vertx.core.Promise; import io.vertx.core.internal.ContextInternal; import io.vertx.core.internal.VertxInternal; +import io.vertx.core.internal.net.NetSocketInternal; import io.vertx.core.internal.tls.SslContextManager; import io.vertx.core.net.HostAndPort; +import io.vertx.core.net.NetClientOptions; import io.vertx.core.net.NetSocket; import io.vertx.core.net.SocketAddress; -import io.vertx.core.internal.net.NetSocketInternal; import io.vertx.core.spi.metrics.ClientMetrics; import io.vertx.core.spi.metrics.VertxMetrics; import io.vertx.mssqlclient.MSSQLConnectOptions; -import io.vertx.sqlclient.spi.connection.Connection; import io.vertx.sqlclient.impl.ConnectionFactoryBase; +import io.vertx.sqlclient.spi.connection.Connection; import java.util.Map; @@ -36,7 +37,11 @@ public class MSSQLConnectionFactory extends ConnectionFactoryBase { @@ -47,7 +47,7 @@ public MSSQLConnectOptions downcast(SqlConnectOptions connectOptions) { @Override public ConnectionFactory createConnectionFactory(Vertx vertx, NetClientOptions transportOptions) { - return new MSSQLConnectionFactory((VertxInternal) vertx); + return new MSSQLConnectionFactory((VertxInternal) vertx, transportOptions); } @Override diff --git a/vertx-mysql-client/src/main/java/io/vertx/mysqlclient/impl/MySQLConnectionFactory.java b/vertx-mysql-client/src/main/java/io/vertx/mysqlclient/impl/MySQLConnectionFactory.java index 7a0178ba18..ecec4bc44c 100644 --- a/vertx-mysql-client/src/main/java/io/vertx/mysqlclient/impl/MySQLConnectionFactory.java +++ b/vertx-mysql-client/src/main/java/io/vertx/mysqlclient/impl/MySQLConnectionFactory.java @@ -17,19 +17,15 @@ import io.vertx.core.buffer.Buffer; import io.vertx.core.internal.ContextInternal; import io.vertx.core.internal.VertxInternal; -import io.vertx.core.net.ConnectOptions; -import io.vertx.core.net.ClientSSLOptions; -import io.vertx.core.net.NetSocket; -import io.vertx.core.net.SocketAddress; -import io.vertx.core.net.TrustOptions; import io.vertx.core.internal.net.NetSocketInternal; +import io.vertx.core.net.*; import io.vertx.core.spi.metrics.ClientMetrics; import io.vertx.core.spi.metrics.VertxMetrics; import io.vertx.mysqlclient.MySQLAuthenticationPlugin; import io.vertx.mysqlclient.MySQLConnectOptions; import io.vertx.mysqlclient.SslMode; -import io.vertx.sqlclient.spi.connection.Connection; import io.vertx.sqlclient.impl.ConnectionFactoryBase; +import io.vertx.sqlclient.spi.connection.Connection; import java.nio.charset.Charset; import java.util.Map; @@ -43,6 +39,10 @@ public MySQLConnectionFactory(VertxInternal vertx) { super(vertx); } + public MySQLConnectionFactory(VertxInternal vertx, NetClientOptions tranportOptions) { + super(vertx, tranportOptions); + } + @Override protected Future doConnectInternal(MySQLConnectOptions options, ContextInternal context) { SslMode sslMode = options.isUsingDomainSocket() ? SslMode.DISABLED : options.getSslMode(); diff --git a/vertx-mysql-client/src/main/java/io/vertx/mysqlclient/spi/MySQLDriver.java b/vertx-mysql-client/src/main/java/io/vertx/mysqlclient/spi/MySQLDriver.java index 391954c3a2..21389b3b4e 100644 --- a/vertx-mysql-client/src/main/java/io/vertx/mysqlclient/spi/MySQLDriver.java +++ b/vertx-mysql-client/src/main/java/io/vertx/mysqlclient/spi/MySQLDriver.java @@ -24,16 +24,19 @@ import io.vertx.core.json.JsonObject; import io.vertx.core.net.NetClientOptions; import io.vertx.mysqlclient.MySQLConnectOptions; -import io.vertx.mysqlclient.impl.*; +import io.vertx.mysqlclient.impl.MySQLConnectionFactory; +import io.vertx.mysqlclient.impl.MySQLConnectionImpl; +import io.vertx.mysqlclient.impl.MySQLConnectionUriParser; +import io.vertx.mysqlclient.impl.MySQLPoolOptions; import io.vertx.sqlclient.Pool; import io.vertx.sqlclient.PoolOptions; import io.vertx.sqlclient.SqlConnectOptions; import io.vertx.sqlclient.SqlConnection; -import io.vertx.sqlclient.spi.connection.Connection; import io.vertx.sqlclient.impl.pool.PoolImpl; import io.vertx.sqlclient.internal.SqlConnectionInternal; -import io.vertx.sqlclient.spi.connection.ConnectionFactory; import io.vertx.sqlclient.spi.DriverBase; +import io.vertx.sqlclient.spi.connection.Connection; +import io.vertx.sqlclient.spi.connection.ConnectionFactory; import java.util.function.Supplier; @@ -76,7 +79,7 @@ public boolean acceptsOptions(SqlConnectOptions options) { @Override public ConnectionFactory createConnectionFactory(Vertx vertx, NetClientOptions transportOptions) { - return new MySQLConnectionFactory((VertxInternal) vertx); + return new MySQLConnectionFactory((VertxInternal) vertx, transportOptions); } @Override diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionFactory.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionFactory.java index cf19c3199c..3bb2757a3b 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionFactory.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionFactory.java @@ -35,7 +35,7 @@ public class OracleConnectionFactory implements ConnectionFactory datasources; - public OracleConnectionFactory(VertxInternal vertx) { + public OracleConnectionFactory() { this.datasources = new HashMap<>(); } diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionImpl.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionImpl.java index c0f8cd799e..6e6286e7e3 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionImpl.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/impl/OracleConnectionImpl.java @@ -17,8 +17,8 @@ import io.vertx.oracleclient.OracleConnectOptions; import io.vertx.oracleclient.OracleConnection; import io.vertx.oracleclient.spi.OracleDriver; -import io.vertx.sqlclient.spi.connection.Connection; import io.vertx.sqlclient.internal.SqlConnectionBase; +import io.vertx.sqlclient.spi.connection.Connection; import io.vertx.sqlclient.spi.connection.ConnectionFactory; public class OracleConnectionImpl extends SqlConnectionBase implements OracleConnection { @@ -29,7 +29,7 @@ public OracleConnectionImpl(ContextInternal context, ConnectionFactory factory, public static Future connect(Vertx vertx, OracleConnectOptions options) { ContextInternal ctx = (ContextInternal) vertx.getOrCreateContext(); - OracleConnectionFactory client = new OracleConnectionFactory(ctx.owner()); + OracleConnectionFactory client = new OracleConnectionFactory(); return client.connect(ctx, options).map(conn -> { OracleConnectionImpl impl = new OracleConnectionImpl(ctx, client, conn); conn.init(impl); diff --git a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/spi/OracleDriver.java b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/spi/OracleDriver.java index 4f3ee4faa5..d7494ec481 100644 --- a/vertx-oracle-client/src/main/java/io/vertx/oracleclient/spi/OracleDriver.java +++ b/vertx-oracle-client/src/main/java/io/vertx/oracleclient/spi/OracleDriver.java @@ -13,16 +13,18 @@ import io.vertx.core.Future; import io.vertx.core.Vertx; import io.vertx.core.internal.ContextInternal; -import io.vertx.core.internal.VertxInternal; import io.vertx.core.json.JsonObject; import io.vertx.core.net.NetClientOptions; import io.vertx.oracleclient.OracleConnectOptions; -import io.vertx.oracleclient.impl.*; +import io.vertx.oracleclient.impl.OracleConnectionFactory; +import io.vertx.oracleclient.impl.OracleConnectionImpl; +import io.vertx.oracleclient.impl.OracleConnectionUriParser; +import io.vertx.oracleclient.impl.OracleJdbcConnection; import io.vertx.sqlclient.SqlConnectOptions; -import io.vertx.sqlclient.spi.connection.Connection; import io.vertx.sqlclient.internal.SqlConnectionInternal; -import io.vertx.sqlclient.spi.connection.ConnectionFactory; import io.vertx.sqlclient.spi.DriverBase; +import io.vertx.sqlclient.spi.connection.Connection; +import io.vertx.sqlclient.spi.connection.ConnectionFactory; import java.util.function.Function; @@ -57,7 +59,7 @@ public boolean acceptsOptions(SqlConnectOptions options) { @Override public ConnectionFactory createConnectionFactory(Vertx vertx, NetClientOptions transportOptions) { - return new OracleConnectionFactory((VertxInternal) vertx); + return new OracleConnectionFactory(); } @Override diff --git a/vertx-pg-client/src/main/java/io/vertx/pgclient/impl/PgConnectionFactory.java b/vertx-pg-client/src/main/java/io/vertx/pgclient/impl/PgConnectionFactory.java index a13770b4ab..7dcb27a6ff 100644 --- a/vertx-pg-client/src/main/java/io/vertx/pgclient/impl/PgConnectionFactory.java +++ b/vertx-pg-client/src/main/java/io/vertx/pgclient/impl/PgConnectionFactory.java @@ -19,17 +19,17 @@ import io.vertx.core.Context; import io.vertx.core.Future; -import io.vertx.core.net.*; -import io.vertx.core.spi.metrics.ClientMetrics; -import io.vertx.core.spi.metrics.VertxMetrics; import io.vertx.core.internal.ContextInternal; import io.vertx.core.internal.PromiseInternal; import io.vertx.core.internal.VertxInternal; import io.vertx.core.internal.net.NetSocketInternal; +import io.vertx.core.net.*; +import io.vertx.core.spi.metrics.ClientMetrics; +import io.vertx.core.spi.metrics.VertxMetrics; import io.vertx.pgclient.PgConnectOptions; import io.vertx.pgclient.SslMode; -import io.vertx.sqlclient.spi.connection.Connection; import io.vertx.sqlclient.impl.ConnectionFactoryBase; +import io.vertx.sqlclient.spi.connection.Connection; import java.util.Collections; import java.util.Map; @@ -40,8 +40,12 @@ */ public class PgConnectionFactory extends ConnectionFactoryBase { - public PgConnectionFactory(VertxInternal context) { - super(context); + public PgConnectionFactory(VertxInternal vertx) { + super(vertx); + } + + public PgConnectionFactory(VertxInternal vertx, NetClientOptions transportOptions) { + super(vertx, transportOptions); } private void checkSslMode(PgConnectOptions options) { diff --git a/vertx-pg-client/src/main/java/io/vertx/pgclient/spi/PgDriver.java b/vertx-pg-client/src/main/java/io/vertx/pgclient/spi/PgDriver.java index a0343a53b4..6b1257e700 100644 --- a/vertx-pg-client/src/main/java/io/vertx/pgclient/spi/PgDriver.java +++ b/vertx-pg-client/src/main/java/io/vertx/pgclient/spi/PgDriver.java @@ -3,11 +3,11 @@ import io.vertx.core.Future; import io.vertx.core.Handler; import io.vertx.core.Vertx; -import io.vertx.core.json.JsonObject; -import io.vertx.core.net.NetClientOptions; import io.vertx.core.internal.CloseFuture; import io.vertx.core.internal.ContextInternal; import io.vertx.core.internal.VertxInternal; +import io.vertx.core.json.JsonObject; +import io.vertx.core.net.NetClientOptions; import io.vertx.pgclient.PgConnectOptions; import io.vertx.pgclient.impl.PgConnectionFactory; import io.vertx.pgclient.impl.PgConnectionImpl; @@ -17,11 +17,11 @@ import io.vertx.sqlclient.PoolOptions; import io.vertx.sqlclient.SqlConnectOptions; import io.vertx.sqlclient.SqlConnection; -import io.vertx.sqlclient.spi.connection.Connection; import io.vertx.sqlclient.impl.pool.PoolImpl; import io.vertx.sqlclient.internal.SqlConnectionInternal; -import io.vertx.sqlclient.spi.connection.ConnectionFactory; import io.vertx.sqlclient.spi.DriverBase; +import io.vertx.sqlclient.spi.connection.Connection; +import io.vertx.sqlclient.spi.connection.ConnectionFactory; import java.util.function.Supplier; @@ -64,7 +64,7 @@ public PgConnectOptions downcast(SqlConnectOptions connectOptions) { @Override public ConnectionFactory createConnectionFactory(Vertx vertx, NetClientOptions transportOptions) { - return new PgConnectionFactory((VertxInternal) vertx); + return new PgConnectionFactory((VertxInternal) vertx, transportOptions); } @Override