Skip to content

Commit 21a5be9

Browse files
committed
Move the pool implementation to the implementation package, it should not be exposed.
Expose lifecycle hooks in the generic driver instead.
1 parent cd0ff4e commit 21a5be9

File tree

9 files changed

+32
-31
lines changed

9 files changed

+32
-31
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import io.vertx.sqlclient.SqlConnectOptions;
3131
import io.vertx.sqlclient.SqlConnection;
3232
import io.vertx.sqlclient.internal.Connection;
33-
import io.vertx.sqlclient.internal.pool.PoolImpl;
33+
import io.vertx.sqlclient.impl.pool.PoolImpl;
3434
import io.vertx.sqlclient.internal.SqlConnectionInternal;
3535
import io.vertx.sqlclient.spi.ConnectionFactory;
3636
import io.vertx.sqlclient.spi.GenericDriver;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import io.vertx.sqlclient.SqlConnectOptions;
3131
import io.vertx.sqlclient.SqlConnection;
3232
import io.vertx.sqlclient.internal.Connection;
33-
import io.vertx.sqlclient.internal.pool.PoolImpl;
33+
import io.vertx.sqlclient.impl.pool.PoolImpl;
3434
import io.vertx.sqlclient.internal.SqlConnectionInternal;
3535
import io.vertx.sqlclient.spi.ConnectionFactory;
3636
import io.vertx.sqlclient.spi.GenericDriver;

vertx-oracle-client/src/main/java/io/vertx/oracleclient/spi/OracleDriver.java

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,34 +11,34 @@
1111
package io.vertx.oracleclient.spi;
1212

1313
import io.vertx.core.Future;
14-
import io.vertx.core.Handler;
1514
import io.vertx.core.Vertx;
16-
import io.vertx.core.internal.CloseFuture;
1715
import io.vertx.core.internal.ContextInternal;
1816
import io.vertx.core.internal.VertxInternal;
1917
import io.vertx.core.json.JsonObject;
2018
import io.vertx.core.net.NetClientOptions;
2119
import io.vertx.oracleclient.OracleConnectOptions;
2220
import io.vertx.oracleclient.impl.*;
23-
import io.vertx.sqlclient.Pool;
24-
import io.vertx.sqlclient.PoolOptions;
2521
import io.vertx.sqlclient.SqlConnectOptions;
26-
import io.vertx.sqlclient.SqlConnection;
2722
import io.vertx.sqlclient.internal.Connection;
28-
import io.vertx.sqlclient.internal.pool.PoolImpl;
2923
import io.vertx.sqlclient.internal.SqlConnectionInternal;
3024
import io.vertx.sqlclient.spi.ConnectionFactory;
3125
import io.vertx.sqlclient.spi.GenericDriver;
3226

3327
import java.util.function.Function;
34-
import java.util.function.Supplier;
3528

3629
public class OracleDriver extends GenericDriver<OracleConnectOptions> {
3730

3831
private static final String DISCRIMINANT = "oracleclient";
3932

33+
private static final Function<Connection, Future<Void>> AFTER_ACQUIRE = conn -> ((OracleJdbcConnection) conn).afterAcquire();
34+
private static final Function<Connection, Future<Void>> BEFORE_RECYCLE = conn -> ((OracleJdbcConnection) conn).beforeRecycle();
35+
4036
public static final OracleDriver INSTANCE = new OracleDriver();
4137

38+
public OracleDriver() {
39+
super(AFTER_ACQUIRE, BEFORE_RECYCLE);
40+
}
41+
4242
@Override
4343
protected String discriminant() {
4444
return DISCRIMINANT;
@@ -49,18 +49,6 @@ public OracleConnectOptions downcast(SqlConnectOptions connectOptions) {
4949
return connectOptions instanceof OracleConnectOptions ? (OracleConnectOptions) connectOptions : new OracleConnectOptions(connectOptions);
5050
}
5151

52-
@Override
53-
protected Pool newPool(VertxInternal vertx, Handler<SqlConnection> connectHandler, Supplier<Future<OracleConnectOptions>> databases, PoolOptions poolOptions, NetClientOptions transportOptions, CloseFuture closeFuture) {
54-
Function<Connection, Future<Void>> afterAcquire = conn -> ((OracleJdbcConnection) conn).afterAcquire();
55-
Function<Connection, Future<Void>> beforeRecycle = conn -> ((OracleJdbcConnection) conn).beforeRecycle();
56-
ConnectionFactory<OracleConnectOptions> factory = createConnectionFactory(vertx, null);
57-
PoolImpl pool = new PoolImpl(vertx, this, false, poolOptions, afterAcquire, beforeRecycle,
58-
factory, databases, connectHandler, closeFuture);
59-
pool.init();
60-
closeFuture.add(factory);
61-
return pool;
62-
}
63-
6452
@Override
6553
public OracleConnectOptions parseConnectionUri(String uri) {
6654
JsonObject conf = OracleConnectionUriParser.parse(uri, false);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import io.vertx.sqlclient.SqlConnectOptions;
1919
import io.vertx.sqlclient.SqlConnection;
2020
import io.vertx.sqlclient.internal.Connection;
21-
import io.vertx.sqlclient.internal.pool.PoolImpl;
21+
import io.vertx.sqlclient.impl.pool.PoolImpl;
2222
import io.vertx.sqlclient.internal.SqlConnectionInternal;
2323
import io.vertx.sqlclient.spi.ConnectionFactory;
2424
import io.vertx.sqlclient.spi.GenericDriver;

vertx-sql-client/src/main/java/io/vertx/sqlclient/Pool.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
import java.util.function.Function;
3636

37-
import static io.vertx.sqlclient.internal.pool.PoolImpl.startPropagatableConnection;
37+
import static io.vertx.sqlclient.impl.pool.PoolImpl.startPropagatableConnection;
3838

3939
/**
4040
* A connection pool which reuses a number of SQL connections.

vertx-sql-client/src/main/java/io/vertx/sqlclient/internal/pool/CloseablePool.java renamed to vertx-sql-client/src/main/java/io/vertx/sqlclient/impl/pool/CloseablePool.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16-
package io.vertx.sqlclient.internal.pool;
16+
package io.vertx.sqlclient.impl.pool;
1717

1818
import io.vertx.codegen.annotations.Nullable;
1919
import io.vertx.core.Future;

vertx-sql-client/src/main/java/io/vertx/sqlclient/internal/pool/PoolImpl.java renamed to vertx-sql-client/src/main/java/io/vertx/sqlclient/impl/pool/PoolImpl.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
*
1616
*/
1717

18-
package io.vertx.sqlclient.internal.pool;
18+
package io.vertx.sqlclient.impl.pool;
1919

2020
import io.vertx.codegen.annotations.Nullable;
2121
import io.vertx.core.*;
@@ -27,7 +27,6 @@
2727
import io.vertx.core.spi.metrics.VertxMetrics;
2828
import io.vertx.sqlclient.*;
2929
import io.vertx.sqlclient.impl.TransactionPropagationLocal;
30-
import io.vertx.sqlclient.impl.pool.SqlConnectionPool;
3130
import io.vertx.sqlclient.internal.Connection;
3231
import io.vertx.sqlclient.internal.SqlClientBase;
3332
import io.vertx.sqlclient.internal.SqlConnectionInternal;

vertx-sql-client/src/main/java/io/vertx/sqlclient/spi/GenericDriver.java

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@
1010
import io.vertx.sqlclient.PoolOptions;
1111
import io.vertx.sqlclient.SqlConnectOptions;
1212
import io.vertx.sqlclient.SqlConnection;
13-
import io.vertx.sqlclient.internal.pool.CloseablePool;
14-
import io.vertx.sqlclient.internal.pool.PoolImpl;
13+
import io.vertx.sqlclient.internal.Connection;
14+
import io.vertx.sqlclient.impl.pool.CloseablePool;
15+
import io.vertx.sqlclient.impl.pool.PoolImpl;
1516

17+
import java.util.function.Function;
1618
import java.util.function.Supplier;
1719

1820
public abstract class GenericDriver<O extends SqlConnectOptions> implements Driver<O> {
@@ -23,6 +25,19 @@ public abstract class GenericDriver<O extends SqlConnectOptions> implements Driv
2325

2426
protected abstract String discriminant();
2527

28+
private final Function<Connection, Future<Void>> afterAcquire;
29+
private final Function<Connection, Future<Void>> beforeRecycle;
30+
31+
public GenericDriver() {
32+
this.afterAcquire = null;
33+
this.beforeRecycle = null;
34+
}
35+
36+
public GenericDriver(Function<Connection, Future<Void>> afterAcquire, Function<Connection, Future<Void>> beforeRecycle) {
37+
this.afterAcquire = afterAcquire;
38+
this.beforeRecycle = beforeRecycle;
39+
}
40+
2641
@Override
2742
public Pool newPool(Vertx vertx, Supplier<Future<O>> databases, PoolOptions options, NetClientOptions transportOptions, Handler<SqlConnection> connectHandler, CloseFuture closeFuture) {
2843
VertxInternal vx = (VertxInternal) vertx;
@@ -37,7 +52,7 @@ public Pool newPool(Vertx vertx, Supplier<Future<O>> databases, PoolOptions opti
3752

3853
protected Pool newPool(VertxInternal vertx, Handler<SqlConnection> connectHandler, Supplier<Future<O>> databases, PoolOptions poolOptions, NetClientOptions transportOptions, CloseFuture closeFuture) {
3954
ConnectionFactory<O> factory = createConnectionFactory(vertx, transportOptions);
40-
PoolImpl pool = new PoolImpl(vertx, this, false, poolOptions, null, null,
55+
PoolImpl pool = new PoolImpl(vertx, this, false, poolOptions, afterAcquire, beforeRecycle,
4156
factory, databases, connectHandler, closeFuture);
4257
pool.init();
4358
closeFuture.add(factory);

vertx-sql-client/src/main/java/module-info.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424

2525
exports io.vertx.sqlclient.internal;
2626
exports io.vertx.sqlclient.internal.command;
27-
exports io.vertx.sqlclient.internal.pool;
28-
27+
2928
// Expose impl to our own implementation, this actually would deserve to be in another module since it is not
3029
// related to the API or the internal API
3130

0 commit comments

Comments
 (0)