Skip to content

Commit 74caf09

Browse files
committed
Simplify a bit the pool implementation and move the actual connection pool in the PoolBase class
1 parent 862d443 commit 74caf09

File tree

15 files changed

+86
-115
lines changed

15 files changed

+86
-115
lines changed

vertx-db2-client/src/main/java/io/vertx/db2client/DB2Pool.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@ static DB2Pool pool(DB2ConnectOptions connectOptions, PoolOptions poolOptions) {
7777
}
7878
VertxOptions vertxOptions = new VertxOptions();
7979
Vertx vertx = Vertx.vertx(vertxOptions);
80-
return new DB2PoolImpl((ContextInternal) vertx.getOrCreateContext(), true, connectOptions, poolOptions);
80+
return DB2PoolImpl.create((ContextInternal) vertx.getOrCreateContext(), true, connectOptions, poolOptions);
8181
}
8282

8383
/**
8484
* Like {@link #pool(DB2ConnectOptions, PoolOptions)} with a specific
8585
* {@link Vertx} instance.
8686
*/
8787
static DB2Pool pool(Vertx vertx, DB2ConnectOptions connectOptions, PoolOptions poolOptions) {
88-
return new DB2PoolImpl((ContextInternal) vertx.getOrCreateContext(), false, connectOptions, poolOptions);
88+
return DB2PoolImpl.create((ContextInternal) vertx.getOrCreateContext(), false, connectOptions, poolOptions);
8989
}
9090
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public DB2ConnectionFactory(Vertx vertx, ContextInternal context, DB2ConnectOpti
6565
this.netClient = vertx.createNetClient(netClientOptions);
6666
}
6767

68-
void close() {
68+
public void close() {
6969
netClient.close();
7070
}
7171

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

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -24,40 +24,29 @@
2424
import io.vertx.sqlclient.impl.Connection;
2525
import io.vertx.sqlclient.impl.PoolBase;
2626
import io.vertx.sqlclient.impl.SqlConnectionImpl;
27-
import io.vertx.sqlclient.impl.pool.ConnectionPool;
2827

2928
public class DB2PoolImpl extends PoolBase<DB2PoolImpl> implements DB2Pool {
3029

30+
public static DB2PoolImpl create(ContextInternal context, boolean closeVertx, DB2ConnectOptions connectOptions,
31+
PoolOptions poolOptions) {
32+
return new DB2PoolImpl(context, closeVertx, poolOptions, new DB2ConnectionFactory(context.owner(), context, connectOptions));
33+
}
34+
3135
private final DB2ConnectionFactory factory;
32-
private final ConnectionPool pool;
3336

34-
public DB2PoolImpl(ContextInternal context, boolean closeVertx, DB2ConnectOptions connectOptions,
35-
PoolOptions poolOptions) {
36-
super(context.owner(), closeVertx);
37-
this.factory = new DB2ConnectionFactory(context.owner(), context, connectOptions);
38-
this.pool = new ConnectionPool(factory, context, poolOptions.getMaxSize(), poolOptions.getMaxWaitQueueSize());
37+
private DB2PoolImpl(ContextInternal context, boolean closeVertx, PoolOptions poolOptions, DB2ConnectionFactory factory) {
38+
super(context, factory, poolOptions, closeVertx);
39+
this.factory = factory;
3940
}
4041

4142
@Override
4243
public void connect(Handler<AsyncResult<Connection>> completionHandler) {
4344
factory.connect().onComplete(completionHandler);
4445
}
4546

46-
@Override
47-
public void acquire(Handler<AsyncResult<Connection>> completionHandler) {
48-
pool.acquire(completionHandler);
49-
}
50-
5147
@SuppressWarnings("rawtypes")
5248
@Override
5349
protected SqlConnectionImpl wrap(ContextInternal context, Connection conn) {
5450
return new DB2ConnectionImpl(factory, context, conn);
5551
}
56-
57-
@Override
58-
protected void doClose() {
59-
pool.close();
60-
factory.close();
61-
super.doClose();
62-
}
6352
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ static MSSQLPool pool(MSSQLConnectOptions connectOptions, PoolOptions poolOption
3636
}
3737
VertxOptions vertxOptions = new VertxOptions();
3838
Vertx vertx = Vertx.vertx(vertxOptions);
39-
return new MSSQLPoolImpl((ContextInternal) vertx.getOrCreateContext(), true, connectOptions, poolOptions);
39+
return MSSQLPoolImpl.create((ContextInternal) vertx.getOrCreateContext(), true, connectOptions, poolOptions);
4040
}
4141

4242
/**
4343
* Like {@link #pool(MSSQLConnectOptions, PoolOptions)} with a specific {@link Vertx} instance.
4444
*/
4545
static MSSQLPool pool(Vertx vertx, MSSQLConnectOptions connectOptions, PoolOptions poolOptions) {
46-
return new MSSQLPoolImpl((ContextInternal) vertx.getOrCreateContext(), false, connectOptions, poolOptions);
46+
return MSSQLPoolImpl.create((ContextInternal) vertx.getOrCreateContext(), false, connectOptions, poolOptions);
4747
}
4848

4949
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ private void close(Handler<AsyncResult<Void>> completionHandler) {
8181
completionHandler.handle(Future.succeededFuture());
8282
}
8383

84-
void close() {
84+
public void close() {
8585
netClient.close();
8686
}
8787
}

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

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,16 @@
2828
import java.util.function.Function;
2929

3030
public class MSSQLPoolImpl extends PoolBase<MSSQLPoolImpl> implements MSSQLPool {
31+
32+
public static MSSQLPoolImpl create(ContextInternal context, boolean closeVertx, MSSQLConnectOptions connectOptions, PoolOptions poolOptions) {
33+
return new MSSQLPoolImpl(context, closeVertx, new MSSQLConnectionFactory(context.owner(), context, connectOptions), poolOptions);
34+
}
35+
3136
private final MSSQLConnectionFactory connectionFactory;
32-
private final ConnectionPool pool;
3337

34-
public MSSQLPoolImpl(ContextInternal context, boolean closeVertx, MSSQLConnectOptions connectOptions, PoolOptions poolOptions) {
35-
super(context.owner(), closeVertx);
36-
this.connectionFactory = new MSSQLConnectionFactory(context.owner(), context, connectOptions);
37-
this.pool = new ConnectionPool(connectionFactory, context, poolOptions.getMaxSize(), poolOptions.getMaxWaitQueueSize());
38+
private MSSQLPoolImpl(ContextInternal context, boolean closeVertx, MSSQLConnectionFactory factory, PoolOptions poolOptions) {
39+
super(context, factory, poolOptions, closeVertx);
40+
this.connectionFactory = factory;
3841
}
3942

4043
@Override
@@ -48,11 +51,6 @@ public void connect(Handler<AsyncResult<Connection>> completionHandler) {
4851
connectionFactory.connect().onComplete(completionHandler);
4952
}
5053

51-
@Override
52-
public void acquire(Handler<AsyncResult<Connection>> completionHandler) {
53-
pool.acquire(completionHandler);
54-
}
55-
5654
@Override
5755
protected SqlConnectionImpl wrap(ContextInternal context, Connection connection) {
5856
return new MSSQLConnectionImpl(connectionFactory, context, connection);
@@ -62,11 +60,4 @@ protected SqlConnectionImpl wrap(ContextInternal context, Connection connection)
6260
public <T> Future<T> withTransaction(Function<SqlClient, Future<T>> function) {
6361
return Future.failedFuture("Transaction is not supported for now");
6462
}
65-
66-
@Override
67-
protected void doClose() {
68-
pool.close();
69-
connectionFactory.close();
70-
super.doClose();
71-
}
7263
}

vertx-mysql-client/src/main/java/io/vertx/mysqlclient/MySQLPool.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,14 @@ static MySQLPool pool(MySQLConnectOptions connectOptions, PoolOptions poolOption
6868
}
6969
VertxOptions vertxOptions = new VertxOptions();
7070
Vertx vertx = Vertx.vertx(vertxOptions);
71-
return new MySQLPoolImpl((ContextInternal) vertx.getOrCreateContext(), true, connectOptions, poolOptions);
71+
return MySQLPoolImpl.create((ContextInternal) vertx.getOrCreateContext(), true, connectOptions, poolOptions);
7272
}
7373

7474
/**
7575
* Like {@link #pool(MySQLConnectOptions, PoolOptions)} with a specific {@link Vertx} instance.
7676
*/
7777
static MySQLPool pool(Vertx vertx, MySQLConnectOptions connectOptions, PoolOptions poolOptions) {
78-
return new MySQLPoolImpl((ContextInternal) vertx.getOrCreateContext(), false, connectOptions, poolOptions);
78+
return MySQLPoolImpl.create((ContextInternal) vertx.getOrCreateContext(), false, connectOptions, poolOptions);
7979
}
8080

8181
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ private void close(Handler<AsyncResult<Void>> completionHandler) {
122122
completionHandler.handle(Future.succeededFuture());
123123
}
124124

125-
void close() {
125+
public void close() {
126126
netClient.close();
127127
}
128128

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

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,37 +20,27 @@
2020
import io.vertx.sqlclient.impl.Connection;
2121
import io.vertx.sqlclient.impl.PoolBase;
2222
import io.vertx.sqlclient.impl.SqlConnectionImpl;
23-
import io.vertx.sqlclient.impl.pool.ConnectionPool;
2423

2524
public class MySQLPoolImpl extends PoolBase<MySQLPoolImpl> implements MySQLPool {
25+
26+
public static MySQLPoolImpl create(ContextInternal context, boolean closeVertx, MySQLConnectOptions connectOptions, PoolOptions poolOptions) {
27+
return new MySQLPoolImpl(context, closeVertx, new MySQLConnectionFactory(context.owner(), context, connectOptions), poolOptions);
28+
}
29+
2630
private final MySQLConnectionFactory factory;
27-
private final ConnectionPool pool;
2831

29-
public MySQLPoolImpl(ContextInternal context, boolean closeVertx, MySQLConnectOptions connectOptions, PoolOptions poolOptions) {
30-
super(context.owner(), closeVertx);
31-
this.factory = new MySQLConnectionFactory(context.owner(), context, connectOptions);
32-
this.pool = new ConnectionPool(factory, context, poolOptions.getMaxSize(), poolOptions.getMaxWaitQueueSize());
32+
private MySQLPoolImpl(ContextInternal context, boolean closeVertx, MySQLConnectionFactory factory, PoolOptions poolOptions) {
33+
super(context, factory, poolOptions, closeVertx);
34+
this.factory = factory;
3335
}
3436

3537
@Override
3638
public void connect(Handler<AsyncResult<Connection>> completionHandler) {
3739
factory.connect().onComplete(completionHandler);
3840
}
3941

40-
@Override
41-
public void acquire(Handler<AsyncResult<Connection>> completionHandler) {
42-
pool.acquire(completionHandler);
43-
}
44-
4542
@Override
4643
protected SqlConnectionImpl wrap(ContextInternal context, Connection conn) {
4744
return new MySQLConnectionImpl(factory, context, conn);
4845
}
49-
50-
@Override
51-
protected void doClose() {
52-
pool.close();
53-
factory.close();
54-
super.doClose();
55-
}
5646
}

vertx-pg-client/src/main/java/io/vertx/pgclient/PgPool.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,14 +97,14 @@ static PgPool pool(PgConnectOptions connectOptions, PoolOptions poolOptions) {
9797
vertxOptions.setPreferNativeTransport(true);
9898
}
9999
VertxInternal vertx = (VertxInternal) Vertx.vertx(vertxOptions);
100-
return new PgPoolImpl(vertx.getOrCreateContext(), true, connectOptions, poolOptions);
100+
return PgPoolImpl.create(vertx.getOrCreateContext(), true, connectOptions, poolOptions);
101101
}
102102

103103
/**
104104
* Like {@link #pool(PgConnectOptions, PoolOptions)} with a specific {@link Vertx} instance.
105105
*/
106106
static PgPool pool(Vertx vertx, PgConnectOptions connectOptions, PoolOptions poolOptions) {
107-
return new PgPoolImpl(((VertxInternal)vertx).getOrCreateContext(), false, connectOptions, poolOptions);
107+
return PgPoolImpl.create(((VertxInternal)vertx).getOrCreateContext(), false, connectOptions, poolOptions);
108108
}
109109

110110
}

0 commit comments

Comments
 (0)