Skip to content

Commit 0d5f508

Browse files
committed
#135 - Adapt to renamed TransactionSynchronizationManager.forCurrentTransaction().
1 parent bedc18b commit 0d5f508

File tree

2 files changed

+26
-27
lines changed

2 files changed

+26
-27
lines changed

src/main/java/org/springframework/data/r2dbc/connectionfactory/ConnectionFactoryUtils.java

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,21 @@
1717

1818
import io.r2dbc.spi.Connection;
1919
import io.r2dbc.spi.ConnectionFactory;
20+
import reactor.core.publisher.Mono;
21+
import reactor.util.function.Tuple2;
22+
import reactor.util.function.Tuples;
23+
2024
import org.apache.commons.logging.Log;
2125
import org.apache.commons.logging.LogFactory;
2226
import org.reactivestreams.Publisher;
27+
2328
import org.springframework.core.Ordered;
2429
import org.springframework.dao.DataAccessResourceFailureException;
2530
import org.springframework.lang.Nullable;
2631
import org.springframework.transaction.NoTransactionException;
2732
import org.springframework.transaction.reactive.TransactionSynchronization;
2833
import org.springframework.transaction.reactive.TransactionSynchronizationManager;
2934
import org.springframework.util.Assert;
30-
import reactor.core.publisher.Mono;
31-
import reactor.util.function.Tuple2;
32-
import reactor.util.function.Tuples;
3335

3436
/**
3537
* Helper class that provides static methods for obtaining R2DBC Connections from a
@@ -50,8 +52,7 @@ public abstract class ConnectionFactoryUtils {
5052

5153
private static final Log logger = LogFactory.getLog(ConnectionFactoryUtils.class);
5254

53-
private ConnectionFactoryUtils() {
54-
}
55+
private ConnectionFactoryUtils() {}
5556

5657
/**
5758
* Obtain a {@link io.r2dbc.spi.Connection} from the given {@link io.r2dbc.spi.ConnectionFactory}. Translates
@@ -85,7 +86,7 @@ public static Mono<Tuple2<Connection, ConnectionFactory>> doGetConnection(Connec
8586

8687
Assert.notNull(connectionFactory, "ConnectionFactory must not be null!");
8788

88-
return TransactionSynchronizationManager.currentTransaction().flatMap(synchronizationManager -> {
89+
return TransactionSynchronizationManager.forCurrentTransaction().flatMap(synchronizationManager -> {
8990

9091
ConnectionHolder conHolder = (ConnectionHolder) synchronizationManager.getResource(connectionFactory);
9192
if (conHolder != null && (conHolder.hasConnection() || conHolder.isSynchronizedWithTransaction())) {
@@ -180,8 +181,7 @@ private static Mono<Tuple2<Connection, ConnectionFactory>> obtainConnection(
180181
return Tuples.of(it, connectionFactory);
181182
}));
182183

183-
return Mono.justOrEmpty(resource)
184-
.flatMap(ConnectionFactoryUtils::createConnection)
184+
return Mono.justOrEmpty(resource).flatMap(ConnectionFactoryUtils::createConnection)
185185
.switchIfEmpty(attachNewConnection);
186186
}
187187

@@ -212,7 +212,7 @@ private static Mono<Connection> fetchConnection(ConnectionFactory connectionFact
212212
*
213213
* @param con the {@link io.r2dbc.spi.Connection} to close if necessary.
214214
* @param connectionFactory the {@link ConnectionFactory} that the Connection was obtained from (may be
215-
* {@literal null}).
215+
* {@literal null}).
216216
* @see #getConnection
217217
*/
218218
public static Mono<Void> releaseConnection(@Nullable io.r2dbc.spi.Connection con,
@@ -228,13 +228,13 @@ public static Mono<Void> releaseConnection(@Nullable io.r2dbc.spi.Connection con
228228
*
229229
* @param con the {@link io.r2dbc.spi.Connection} to close if necessary.
230230
* @param connectionFactory the {@link ConnectionFactory} that the Connection was obtained from (may be
231-
* {@literal null}).
231+
* {@literal null}).
232232
* @see #doGetConnection
233233
*/
234234
public static Mono<Void> doReleaseConnection(@Nullable io.r2dbc.spi.Connection con,
235235
@Nullable ConnectionFactory connectionFactory) {
236236

237-
return TransactionSynchronizationManager.currentTransaction().flatMap(it -> {
237+
return TransactionSynchronizationManager.forCurrentTransaction().flatMap(it -> {
238238

239239
ConnectionHolder conHolder = (ConnectionHolder) it.getResource(connectionFactory);
240240
if (conHolder != null && connectionEquals(conHolder, con)) {
@@ -302,7 +302,7 @@ public static Mono<Void> doCloseConnection(Connection connection, @Nullable Conn
302302
* {@link reactor.util.context.Context}.
303303
*
304304
* @throws NoTransactionException if no active {@link ReactiveTransactionSynchronization} is associated with the
305-
* current subscription.
305+
* current subscription.
306306
* @see Mono#subscriberContext()
307307
* @see ReactiveTransactionSynchronization
308308
*/
@@ -319,7 +319,7 @@ public static Mono<ReactiveTransactionSynchronization> currentReactiveTransactio
319319
* {@link reactor.util.context.Context}.
320320
*
321321
* @throws NoTransactionException if no active {@link ReactiveTransactionSynchronization} is associated with the
322-
* current subscription.
322+
* current subscription.
323323
* @see Mono#subscriberContext()
324324
* @see ReactiveTransactionSynchronization
325325
*/
@@ -339,7 +339,7 @@ public static Mono<ReactiveTransactionSynchronization> currentActiveReactiveTran
339339
*/
340340
public static Mono<ConnectionFactory> currentConnectionFactory(ConnectionFactory connectionFactory) {
341341

342-
return TransactionSynchronizationManager.currentTransaction()
342+
return TransactionSynchronizationManager.forCurrentTransaction()
343343
.filter(TransactionSynchronizationManager::isSynchronizationActive).filter(it -> {
344344

345345
ConnectionHolder conHolder = (ConnectionHolder) it.getResource(connectionFactory);
@@ -357,7 +357,7 @@ public static Mono<ConnectionFactory> currentConnectionFactory(ConnectionFactory
357357
*
358358
* @param conHolder the {@link ConnectionHolder} for the held Connection (potentially a proxy)
359359
* @param passedInCon the {@link Connection} passed-in by the user (potentially a target {@link Connection} without
360-
* proxy)
360+
* proxy)
361361
* @return whether the given Connections are equal
362362
* @see #getTargetConnection
363363
*/
@@ -420,13 +420,13 @@ private static Mono<? extends ConnectionFactory> obtainDefaultConnectionFactory(
420420

421421
TransactionResources currentSynchronization = synchronization.getCurrentTransaction();
422422
return currentSynchronization.getResource(ConnectionFactory.class);
423-
}).switchIfEmpty(Mono.error(new DataAccessResourceFailureException(
424-
"Cannot extract ConnectionFactory from current TransactionContext!")));
423+
}).switchIfEmpty(Mono.error(
424+
new DataAccessResourceFailureException("Cannot extract ConnectionFactory from current TransactionContext!")));
425425
}
426426

427427
/**
428-
* Create a {@link Connection} via the given {@link ConnectionFactory#create() factory} and return a {@link Tuple2} associating the
429-
* {@link Connection} with its creating {@link ConnectionFactory}.
428+
* Create a {@link Connection} via the given {@link ConnectionFactory#create() factory} and return a {@link Tuple2}
429+
* associating the {@link Connection} with its creating {@link ConnectionFactory}.
430430
*
431431
* @param factory must not be {@literal null}.
432432
* @return never {@literal null}
@@ -437,8 +437,7 @@ private static Mono<Tuple2<Connection, ConnectionFactory>> createConnection(Conn
437437
logger.debug("Fetching resumed R2DBC Connection from ConnectionFactory");
438438
}
439439

440-
return Mono.from(factory.create())
441-
.map(connection -> Tuples.of(connection, factory));
440+
return Mono.from(factory.create()).map(connection -> Tuples.of(connection, factory));
442441
}
443442

444443
/**
@@ -469,7 +468,7 @@ public int getOrder() {
469468
public Mono<Void> suspend() {
470469
if (this.holderActive) {
471470

472-
return TransactionSynchronizationManager.currentTransaction().flatMap(it -> {
471+
return TransactionSynchronizationManager.forCurrentTransaction().flatMap(it -> {
473472

474473
it.unbindResource(this.connectionFactory);
475474
if (this.connectionHolder.hasConnection() && !this.connectionHolder.isOpen()) {
@@ -490,7 +489,7 @@ public Mono<Void> suspend() {
490489
@Override
491490
public Mono<Void> resume() {
492491
if (this.holderActive) {
493-
return TransactionSynchronizationManager.currentTransaction().doOnNext(it -> {
492+
return TransactionSynchronizationManager.forCurrentTransaction().doOnNext(it -> {
494493
it.bindResource(this.connectionFactory, this.connectionHolder);
495494
}).then();
496495
}
@@ -506,7 +505,7 @@ public Mono<Void> beforeCompletion() {
506505
// to avoid issues with strict transaction implementations that expect
507506
// the close call before transaction completion.
508507
if (!this.connectionHolder.isOpen()) {
509-
return TransactionSynchronizationManager.currentTransaction().flatMap(it -> {
508+
return TransactionSynchronizationManager.forCurrentTransaction().flatMap(it -> {
510509

511510
it.unbindResource(this.connectionFactory);
512511
this.holderActive = false;
@@ -529,7 +528,7 @@ public Mono<Void> afterCompletion(int status) {
529528
if (this.holderActive) {
530529
// The thread-bound ConnectionHolder might not be available anymore,
531530
// since afterCompletion might get called from a different thread.
532-
return TransactionSynchronizationManager.currentTransaction().flatMap(it -> {
531+
return TransactionSynchronizationManager.forCurrentTransaction().flatMap(it -> {
533532

534533
it.unbindResourceIfPossible(this.connectionFactory);
535534
this.holderActive = false;

src/test/java/org/springframework/data/r2dbc/connectionfactory/R2dbcTransactionManagerUnitTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public void testSimpleTransaction() {
7373

7474
ConnectionFactoryUtils.getConnection(connectionFactoryMock).map(Tuple2::getT1).flatMap(it -> {
7575

76-
return TransactionSynchronizationManager.currentTransaction()
76+
return TransactionSynchronizationManager.forCurrentTransaction()
7777
.doOnNext(synchronizationManager -> synchronizationManager.registerSynchronization(sync));
7878

7979
}) //
@@ -209,7 +209,7 @@ public void testTransactionSetRollbackOnly() {
209209
tx.setRollbackOnly();
210210
assertThat(tx.isNewTransaction()).isTrue();
211211

212-
return TransactionSynchronizationManager.currentTransaction().doOnNext(it -> {
212+
return TransactionSynchronizationManager.forCurrentTransaction().doOnNext(it -> {
213213

214214
assertThat(it.hasResource(connectionFactoryMock)).isTrue();
215215
it.registerSynchronization(sync);

0 commit comments

Comments
 (0)