Skip to content

Commit fe418c9

Browse files
committed
Remove usage of context local map.
Motivation: Context local map usage is discouraged with Vert.x 5 in favor of context local keys. Changes: Use context local keys instead of context local map.
1 parent eb6b3af commit fe418c9

File tree

5 files changed

+26
-6
lines changed

5 files changed

+26
-6
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import io.vertx.core.Vertx;
2929
import io.vertx.core.net.NetClientOptions;
3030
import io.vertx.core.internal.ContextInternal;
31-
import io.vertx.sqlclient.internal.pool.PoolImpl;
31+
import io.vertx.sqlclient.impl.TransactionPropagationLocal;
3232
import io.vertx.sqlclient.impl.Utils;
3333
import io.vertx.sqlclient.spi.Driver;
3434

@@ -158,7 +158,7 @@ static Pool pool(Vertx vertx, SqlConnectOptions database, PoolOptions options) {
158158
default <T> Future<@Nullable T> withTransaction(TransactionPropagation txPropagation, Function<SqlConnection, Future<@Nullable T>> function) {
159159
if (txPropagation == TransactionPropagation.CONTEXT) {
160160
ContextInternal context = (ContextInternal) Vertx.currentContext();
161-
SqlConnection sqlConnection = context.getLocal(PoolImpl.PROPAGATABLE_CONNECTION);
161+
SqlConnection sqlConnection = context.getLocal(TransactionPropagationLocal.KEY);
162162
if (sqlConnection == null) {
163163
return startPropagatableConnection(this, function);
164164
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package io.vertx.sqlclient.impl;
2+
3+
import io.vertx.core.internal.VertxBootstrap;
4+
import io.vertx.core.spi.VertxServiceProvider;
5+
import io.vertx.core.spi.context.storage.ContextLocal;
6+
import io.vertx.sqlclient.SqlConnection;
7+
8+
public class TransactionPropagationLocal implements VertxServiceProvider {
9+
10+
public static final ContextLocal<SqlConnection> KEY = ContextLocal.registerLocal(SqlConnection.class);
11+
12+
@Override
13+
public void init(VertxBootstrap builder) {
14+
}
15+
}

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import io.vertx.core.spi.metrics.PoolMetrics;
2727
import io.vertx.core.spi.metrics.VertxMetrics;
2828
import io.vertx.sqlclient.*;
29+
import io.vertx.sqlclient.impl.TransactionPropagationLocal;
2930
import io.vertx.sqlclient.impl.pool.SqlConnectionPool;
3031
import io.vertx.sqlclient.internal.Connection;
3132
import io.vertx.sqlclient.internal.SqlClientBase;
@@ -54,8 +55,6 @@ public class PoolImpl extends SqlClientBase implements Pool, Closeable {
5455
private final Handler<SqlConnection> connectionInitializer;
5556
private long timerID;
5657

57-
public static final String PROPAGATABLE_CONNECTION = "propagatable_connection";
58-
5958
public PoolImpl(VertxInternal vertx,
6059
Driver driver,
6160
boolean pipelined,
@@ -149,7 +148,7 @@ public Future<SqlConnection> getConnection() {
149148

150149
public static <T> Future<@Nullable T> startPropagatableConnection(Pool pool, Function<SqlConnection, Future<@Nullable T>> function) {
151150
ContextInternal context = (ContextInternal) Vertx.currentContext();
152-
return pool.getConnection().onComplete(handler -> context.putLocal(PROPAGATABLE_CONNECTION, handler.result()))
151+
return pool.getConnection().onComplete(handler -> context.putLocal(TransactionPropagationLocal.KEY, handler.result()))
153152
.flatMap(conn -> conn
154153
.begin()
155154
.flatMap(tx -> function
@@ -167,7 +166,7 @@ public Future<SqlConnection> getConnection() {
167166
.compose(v -> context.failedFuture(err), failure -> context.failedFuture(err));
168167
}
169168
}))
170-
.onComplete(ar -> conn.close().onComplete(v -> context.removeLocal(PROPAGATABLE_CONNECTION))));
169+
.onComplete(ar -> conn.close().onComplete(v -> context.removeLocal(TransactionPropagationLocal.KEY))));
171170
}
172171

173172
@Override

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import io.vertx.core.spi.VertxServiceProvider;
2+
import io.vertx.sqlclient.impl.TransactionPropagationLocal;
3+
14
module io.vertx.sql.client {
25

36
requires io.netty.common;
@@ -18,6 +21,8 @@
1821

1922
uses io.vertx.sqlclient.spi.Driver;
2023

24+
provides io.vertx.core.spi.VertxServiceProvider with io.vertx.sqlclient.impl.TransactionPropagationLocal;
25+
2126
// Expose enough for implementing a client back-end on top of this API (e.g. vertx-jdbc-client)
2227

2328
exports io.vertx.sqlclient.internal;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
io.vertx.sqlclient.impl.TransactionPropagationLocal

0 commit comments

Comments
 (0)