Browse Source

Deprecate TransactionCallbackWithoutResult

Closes gh-35606
pull/35608/head
Juergen Hoeller 2 months ago
parent
commit
080bca0b23
  1. 40
      spring-jms/src/test/java/org/springframework/jms/connection/JmsTransactionManagerTests.java
  2. 17
      spring-orm/src/test/java/org/springframework/orm/jpa/JpaTransactionManagerTests.java
  3. 4
      spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java

40
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.TransactionStatus;
import org.springframework.transaction.UnexpectedRollbackException; import org.springframework.transaction.UnexpectedRollbackException;
import org.springframework.transaction.support.DefaultTransactionDefinition; import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.transaction.support.TransactionTemplate; import org.springframework.transaction.support.TransactionTemplate;
@ -120,15 +119,11 @@ class JmsTransactionManagerTests {
return null; return null;
}); });
TransactionTemplate tt = new TransactionTemplate(tm); TransactionTemplate tt = new TransactionTemplate(tm);
tt.execute(new TransactionCallbackWithoutResult() { tt.execute(status ->
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
jt.execute((SessionCallback<Void>) sess -> { jt.execute((SessionCallback<Void>) sess -> {
assertThat(session).isSameAs(sess); assertThat(session).isSameAs(sess);
return null; return null;
}); }));
}
});
tm.commit(ts); tm.commit(ts);
verify(session).commit(); verify(session).commit();
@ -153,15 +148,12 @@ class JmsTransactionManagerTests {
return null; return null;
}); });
TransactionTemplate tt = new TransactionTemplate(tm); TransactionTemplate tt = new TransactionTemplate(tm);
tt.execute(new TransactionCallbackWithoutResult() { tt.executeWithoutResult(status -> {
@Override jt.execute((SessionCallback<Void>) sess -> {
protected void doInTransactionWithoutResult(TransactionStatus status) { assertThat(session).isSameAs(sess);
jt.execute((SessionCallback<Void>) sess -> { return null;
assertThat(session).isSameAs(sess); });
return null; status.setRollbackOnly();
});
status.setRollbackOnly();
}
}); });
assertThatExceptionOfType(UnexpectedRollbackException.class).isThrownBy(() -> assertThatExceptionOfType(UnexpectedRollbackException.class).isThrownBy(() ->
tm.commit(ts)); tm.commit(ts));
@ -191,15 +183,11 @@ class JmsTransactionManagerTests {
}); });
TransactionTemplate tt = new TransactionTemplate(tm); TransactionTemplate tt = new TransactionTemplate(tm);
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NOT_SUPPORTED); tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_NOT_SUPPORTED);
tt.execute(new TransactionCallbackWithoutResult() { tt.execute(status ->
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
jt.execute((SessionCallback<Void>) sess -> { jt.execute((SessionCallback<Void>) sess -> {
assertThat(session).isNotSameAs(sess); assertThat(session).isNotSameAs(sess);
return null; return null;
}); }));
}
});
jt.execute((SessionCallback<Void>) sess -> { jt.execute((SessionCallback<Void>) sess -> {
assertThat(session).isSameAs(sess); assertThat(session).isSameAs(sess);
return null; return null;
@ -231,15 +219,11 @@ class JmsTransactionManagerTests {
}); });
TransactionTemplate tt = new TransactionTemplate(tm); TransactionTemplate tt = new TransactionTemplate(tm);
tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
tt.execute(new TransactionCallbackWithoutResult() { tt.execute(status ->
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
jt.execute((SessionCallback<Void>) sess -> { jt.execute((SessionCallback<Void>) sess -> {
assertThat(session).isNotSameAs(sess); assertThat(session).isNotSameAs(sess);
return null; return null;
}); }));
}
});
jt.execute((SessionCallback<Void>) sess -> { jt.execute((SessionCallback<Void>) sess -> {
assertThat(session).isSameAs(sess); assertThat(session).isSameAs(sess);
return null; return null;

17
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.InvalidIsolationLevelException;
import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.TransactionSystemException; import org.springframework.transaction.TransactionSystemException;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionSynchronization; import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager; import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.transaction.support.TransactionTemplate; import org.springframework.transaction.support.TransactionTemplate;
@ -583,11 +581,7 @@ class JpaTransactionManagerTests {
tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE); tt.setIsolationLevel(TransactionDefinition.ISOLATION_SERIALIZABLE);
assertThatExceptionOfType(InvalidIsolationLevelException.class).isThrownBy(() -> assertThatExceptionOfType(InvalidIsolationLevelException.class).isThrownBy(() ->
tt.execute(new TransactionCallbackWithoutResult() { tt.executeWithoutResult(status -> {}));
@Override
protected void doInTransactionWithoutResult(TransactionStatus status) {
}
}));
verify(manager).close(); verify(manager).close();
} }
@ -597,12 +591,9 @@ class JpaTransactionManagerTests {
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse(); assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();
assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse(); assertThat(TransactionSynchronizationManager.isSynchronizationActive()).isFalse();
tt.execute(new TransactionCallbackWithoutResult() { tt.executeWithoutResult(status -> {
@Override assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
public void doInTransactionWithoutResult(TransactionStatus status) { status.flush();
assertThat(TransactionSynchronizationManager.hasResource(factory)).isTrue();
status.flush();
}
}); });
assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse(); assertThat(TransactionSynchronizationManager.hasResource(factory)).isFalse();

4
spring-tx/src/main/java/org/springframework/transaction/support/TransactionCallbackWithoutResult.java

@ -16,6 +16,8 @@
package org.springframework.transaction.support; package org.springframework.transaction.support;
import java.util.function.Consumer;
import org.jspecify.annotations.Nullable; import org.jspecify.annotations.Nullable;
import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.TransactionStatus;
@ -28,7 +30,9 @@ import org.springframework.transaction.TransactionStatus;
* @author Juergen Hoeller * @author Juergen Hoeller
* @since 28.03.2003 * @since 28.03.2003
* @see TransactionTemplate * @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> { public abstract class TransactionCallbackWithoutResult implements TransactionCallback<@Nullable Object> {
@Override @Override

Loading…
Cancel
Save