Skip to content

Commit c1856d2

Browse files
committed
Merge branch '5.3.x' into main
2 parents c25aefd + 7b9848a commit c1856d2

File tree

4 files changed

+35
-32
lines changed

4 files changed

+35
-32
lines changed

spring-tx/src/main/java/org/springframework/transaction/reactive/TransactionContextManager.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2019 the original author or authors.
2+
* Copyright 2002-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -68,8 +68,8 @@ public static Mono<TransactionContext> currentContext() throws NoTransactionExce
6868
* Create a {@link TransactionContext} and register it in the subscriber {@link Context}.
6969
* @return functional context registration.
7070
* @throws IllegalStateException if a transaction context is already associated.
71-
* @see Mono#subscriberContext(Function)
72-
* @see Flux#subscriberContext(Function)
71+
* @see Mono#contextWrite(Function)
72+
* @see Flux#contextWrite(Function)
7373
*/
7474
public static Function<Context, Context> createTransactionContext() {
7575
return context -> context.put(TransactionContext.class, new TransactionContext());

spring-tx/src/test/java/org/springframework/transaction/interceptor/AbstractReactiveTransactionAspectTests.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2019 the original author or authors.
2+
* Copyright 2002-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -350,12 +350,14 @@ public void cannotCommitTransaction() throws Exception {
350350
}
351351

352352
private void checkReactiveTransaction(boolean expected) {
353-
Mono.subscriberContext().handle((context, sink) -> {
354-
if (context.hasKey(TransactionContext.class) != expected) {
355-
fail("Should have thrown NoTransactionException");
356-
}
357-
sink.complete();
358-
}).block();
353+
Mono.deferContextual(Mono::just)
354+
.handle((context, sink) -> {
355+
if (context.hasKey(TransactionContext.class) != expected) {
356+
fail("Should have thrown NoTransactionException");
357+
}
358+
sink.complete();
359+
})
360+
.block();
359361
}
360362

361363

spring-tx/src/test/java/org/springframework/transaction/reactive/ReactiveTransactionSupportTests.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2019 the original author or authors.
2+
* Copyright 2002-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -41,19 +41,19 @@ public void noExistingTransaction() {
4141
ReactiveTransactionManager tm = new ReactiveTestTransactionManager(false, true);
4242

4343
tm.getReactiveTransaction(new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_SUPPORTS))
44-
.subscriberContext(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
44+
.contextWrite(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
4545
.as(StepVerifier::create).consumeNextWith(actual -> assertThat(actual.hasTransaction()).isFalse()
4646
).verifyComplete();
4747

4848
tm.getReactiveTransaction(new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRED))
49-
.cast(GenericReactiveTransaction.class).subscriberContext(TransactionContextManager.createTransactionContext())
49+
.cast(GenericReactiveTransaction.class).contextWrite(TransactionContextManager.createTransactionContext())
5050
.as(StepVerifier::create).consumeNextWith(actual -> {
5151
assertThat(actual.hasTransaction()).isTrue();
5252
assertThat(actual.isNewTransaction()).isTrue();
5353
}).verifyComplete();
5454

5555
tm.getReactiveTransaction(new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_MANDATORY))
56-
.subscriberContext(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
56+
.contextWrite(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
5757
.as(StepVerifier::create).expectError(IllegalTransactionStateException.class).verify();
5858
}
5959

@@ -62,21 +62,21 @@ public void existingTransaction() {
6262
ReactiveTransactionManager tm = new ReactiveTestTransactionManager(true, true);
6363

6464
tm.getReactiveTransaction(new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_SUPPORTS))
65-
.subscriberContext(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
65+
.contextWrite(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
6666
.as(StepVerifier::create).consumeNextWith(actual -> {
6767
assertThat(actual.getTransaction()).isNotNull();
6868
assertThat(actual.isNewTransaction()).isFalse();
6969
}).verifyComplete();
7070

7171
tm.getReactiveTransaction(new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRED))
72-
.subscriberContext(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
72+
.contextWrite(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
7373
.as(StepVerifier::create).consumeNextWith(actual -> {
7474
assertThat(actual.getTransaction()).isNotNull();
7575
assertThat(actual.isNewTransaction()).isFalse();
7676
}).verifyComplete();
7777

7878
tm.getReactiveTransaction(new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_MANDATORY))
79-
.subscriberContext(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
79+
.contextWrite(TransactionContextManager.createTransactionContext()).cast(GenericReactiveTransaction.class)
8080
.as(StepVerifier::create).consumeNextWith(actual -> {
8181
assertThat(actual.getTransaction()).isNotNull();
8282
assertThat(actual.isNewTransaction()).isFalse();
@@ -87,7 +87,7 @@ public void existingTransaction() {
8787
public void commitWithoutExistingTransaction() {
8888
ReactiveTestTransactionManager tm = new ReactiveTestTransactionManager(false, true);
8989
tm.getReactiveTransaction(new DefaultTransactionDefinition()).flatMap(tm::commit)
90-
.subscriberContext(TransactionContextManager.createTransactionContext())
90+
.contextWrite(TransactionContextManager.createTransactionContext())
9191
.as(StepVerifier::create).verifyComplete();
9292

9393
assertHasBegan(tm);
@@ -101,7 +101,7 @@ public void commitWithoutExistingTransaction() {
101101
public void rollbackWithoutExistingTransaction() {
102102
ReactiveTestTransactionManager tm = new ReactiveTestTransactionManager(false, true);
103103
tm.getReactiveTransaction(new DefaultTransactionDefinition()).flatMap(tm::rollback)
104-
.subscriberContext(TransactionContextManager.createTransactionContext()).as(StepVerifier::create)
104+
.contextWrite(TransactionContextManager.createTransactionContext()).as(StepVerifier::create)
105105
.verifyComplete();
106106

107107
assertHasBegan(tm);
@@ -116,7 +116,7 @@ public void rollbackOnlyWithoutExistingTransaction() {
116116
ReactiveTestTransactionManager tm = new ReactiveTestTransactionManager(false, true);
117117
tm.getReactiveTransaction(new DefaultTransactionDefinition()).doOnNext(ReactiveTransaction::setRollbackOnly)
118118
.flatMap(tm::commit)
119-
.subscriberContext(TransactionContextManager.createTransactionContext()).as(StepVerifier::create)
119+
.contextWrite(TransactionContextManager.createTransactionContext()).as(StepVerifier::create)
120120
.verifyComplete();
121121

122122
assertHasBegan(tm);
@@ -130,7 +130,7 @@ public void rollbackOnlyWithoutExistingTransaction() {
130130
public void commitWithExistingTransaction() {
131131
ReactiveTestTransactionManager tm = new ReactiveTestTransactionManager(true, true);
132132
tm.getReactiveTransaction(new DefaultTransactionDefinition()).flatMap(tm::commit)
133-
.subscriberContext(TransactionContextManager.createTransactionContext())
133+
.contextWrite(TransactionContextManager.createTransactionContext())
134134
.as(StepVerifier::create).verifyComplete();
135135

136136
assertHasNotBegan(tm);
@@ -144,7 +144,7 @@ public void commitWithExistingTransaction() {
144144
public void rollbackWithExistingTransaction() {
145145
ReactiveTestTransactionManager tm = new ReactiveTestTransactionManager(true, true);
146146
tm.getReactiveTransaction(new DefaultTransactionDefinition()).flatMap(tm::rollback)
147-
.subscriberContext(TransactionContextManager.createTransactionContext()).as(StepVerifier::create)
147+
.contextWrite(TransactionContextManager.createTransactionContext()).as(StepVerifier::create)
148148
.verifyComplete();
149149

150150
assertHasNotBegan(tm);
@@ -158,7 +158,7 @@ public void rollbackWithExistingTransaction() {
158158
public void rollbackOnlyWithExistingTransaction() {
159159
ReactiveTestTransactionManager tm = new ReactiveTestTransactionManager(true, true);
160160
tm.getReactiveTransaction(new DefaultTransactionDefinition()).doOnNext(ReactiveTransaction::setRollbackOnly).flatMap(tm::commit)
161-
.subscriberContext(TransactionContextManager.createTransactionContext()).as(StepVerifier::create)
161+
.contextWrite(TransactionContextManager.createTransactionContext()).as(StepVerifier::create)
162162
.verifyComplete();
163163

164164
assertHasNotBegan(tm);

spring-tx/src/test/kotlin/org/springframework/transaction/interceptor/AbstractCoroutinesTransactionAspectTests.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2020 the original author or authors.
2+
* Copyright 2002-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -28,7 +28,7 @@ import org.springframework.transaction.*
2828
import org.springframework.transaction.reactive.TransactionContext
2929
import reactor.core.publisher.Mono
3030
import reactor.core.publisher.SynchronousSink
31-
import reactor.util.context.Context
31+
import reactor.util.context.ContextView
3232
import java.lang.reflect.Method
3333
import kotlin.coroutines.Continuation
3434

@@ -299,14 +299,15 @@ abstract class AbstractCoroutinesTransactionAspectTests {
299299
}
300300
}
301301

302-
@Suppress("DEPRECATION")
303302
private fun checkReactiveTransaction(expected: Boolean) {
304-
Mono.subscriberContext().handle { context: Context, sink: SynchronousSink<Any?> ->
305-
if (context.hasKey(TransactionContext::class.java) != expected) {
306-
Fail.fail<Any>("Should have thrown NoTransactionException")
307-
}
308-
sink.complete()
309-
}.block()
303+
Mono.deferContextual{context -> Mono.just(context)}
304+
.handle { context: ContextView, sink: SynchronousSink<Any?> ->
305+
if (context.hasKey(TransactionContext::class.java) != expected) {
306+
Fail.fail<Any>("Should have thrown NoTransactionException")
307+
}
308+
sink.complete()
309+
}
310+
.block()
310311
}
311312

312313
protected open fun advised(target: Any, rtm: ReactiveTransactionManager, tas: Array<TransactionAttributeSource>): Any {

0 commit comments

Comments
 (0)