diff --git a/spring-jms/src/test/java/org/springframework/jms/connection/JmsTransactionManagerTests.java b/spring-jms/src/test/java/org/springframework/jms/connection/JmsTransactionManagerTests.java index 36cb8008ac9..e717a332583 100644 --- a/spring-jms/src/test/java/org/springframework/jms/connection/JmsTransactionManagerTests.java +++ b/spring-jms/src/test/java/org/springframework/jms/connection/JmsTransactionManagerTests.java @@ -33,7 +33,6 @@ import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.UnexpectedRollbackException; import org.springframework.transaction.support.DefaultTransactionDefinition; -import org.springframework.transaction.support.TransactionCallbackWithoutResult; import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.transaction.support.TransactionTemplate; @@ -120,15 +119,11 @@ class JmsTransactionManagerTests { return null; }); TransactionTemplate tt = new TransactionTemplate(tm); - tt.execute(new TransactionCallbackWithoutResult() { - @Override - protected void doInTransactionWithoutResult(TransactionStatus status) { + tt.execute(status -> jt.execute((SessionCallback) sess -> { assertThat(session).isSameAs(sess); return null; - }); - } - }); + })); tm.commit(ts); verify(session).commit(); @@ -153,15 +148,12 @@ class JmsTransactionManagerTests { return null; }); TransactionTemplate tt = new TransactionTemplate(tm); - tt.execute(new TransactionCallbackWithoutResult() { - @Override - protected void doInTransactionWithoutResult(TransactionStatus status) { - jt.execute((SessionCallback) sess -> { - assertThat(session).isSameAs(sess); - return null; - }); - status.setRollbackOnly(); - } + tt.executeWithoutResult(status -> { + jt.execute((SessionCallback) sess -> { + assertThat(session).isSameAs(sess); + return null; + }); + status.setRollbackOnly(); }); assertThatExceptionOfType(UnexpectedRollbackException.class).isThrownBy(() -> tm.commit(ts)); @@ -191,15 +183,11 @@ class JmsTransactionManagerTests { }); TransactionTemplate tt = new TransactionTemplate(tm); tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NOT_SUPPORTED); - tt.execute(new TransactionCallbackWithoutResult() { - @Override - protected void doInTransactionWithoutResult(TransactionStatus status) { + tt.execute(status -> jt.execute((SessionCallback) sess -> { assertThat(session).isNotSameAs(sess); return null; - }); - } - }); + })); jt.execute((SessionCallback) sess -> { assertThat(session).isSameAs(sess); return null; @@ -231,15 +219,11 @@ class JmsTransactionManagerTests { }); TransactionTemplate tt = new TransactionTemplate(tm); tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); - tt.execute(new TransactionCallbackWithoutResult() { - @Override - protected void doInTransactionWithoutResult(TransactionStatus status) { + tt.execute(status -> jt.execute((SessionCallback) sess -> { assertThat(session).isNotSameAs(sess); return null; - }); - } - }); + })); jt.execute((SessionCallback) sess -> { assertThat(session).isSameAs(sess); return null; diff --git a/spring-orm/src/test/java/org/springframework/orm/jpa/JpaTransactionManagerTests.java b/spring-orm/src/test/java/org/springframework/orm/jpa/JpaTransactionManagerTests.java index 62187589565..857d89f6a00 100644 --- a/spring-orm/src/test/java/org/springframework/orm/jpa/JpaTransactionManagerTests.java +++ b/spring-orm/src/test/java/org/springframework/orm/jpa/JpaTransactionManagerTests.java @@ -28,9 +28,7 @@ import org.junit.jupiter.api.Test; import org.springframework.transaction.InvalidIsolationLevelException; import org.springframework.transaction.TransactionDefinition; -import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.TransactionSystemException; -import org.springframework.transaction.support.TransactionCallbackWithoutResult; import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.transaction.support.TransactionTemplate; @@ -583,11 +581,7 @@ class JpaTransactionManagerTests { tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE); assertThatExceptionOfType(InvalidIsolationLevelException.class).isThrownBy(() -> - tt.execute(new TransactionCallbackWithoutResult() { - @Override - protected void doInTransactionWithoutResult(TransactionStatus status) { - } - })); + tt.executeWithoutResult(status -> {})); verify(manager).close(); } @@ -597,12 +591,9 @@ class JpaTransactionManagerTests { assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse(); assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse(); - tt.execute(new TransactionCallbackWithoutResult() { - @Override - public void doInTransactionWithoutResult(TransactionStatus status) { - assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue(); - status.flush(); - } + tt.executeWithoutResult(status -> { + assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue(); + status.flush(); }); assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse(); diff --git a/spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java b/spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java index 0d04ebff73a..7cd5196045c 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java +++ b/spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java @@ -16,6 +16,8 @@ package org.springframework.transaction.support; +import java.util.function.Consumer; + import org.jspecify.annotations.Nullable; import org.springframework.transaction.TransactionStatus; @@ -28,7 +30,9 @@ import org.springframework.transaction.TransactionStatus; * @author Juergen Hoeller * @since 28.03.2003 * @see TransactionTemplate + * @deprecated as of 7.0, superseded by {@link TransactionOperations#executeWithoutResult(Consumer)} */ +@Deprecated(since = "7.0") public abstract class TransactionCallbackWithoutResult implements TransactionCallback<@Nullable Object> { @Override