Expose id/getListenerId in base EventListener/ApplicationListener (pulled up from tx)

Includes removeApplicationListeners(Predicate) method in ApplicationEventMulticaster.

Closes gh-26638
This commit is contained in:
Juergen Hoeller
2021-03-08 19:31:56 +01:00
parent 9877a9e6b7
commit 86902d27b2
10 changed files with 166 additions and 61 deletions

View File

@@ -26,6 +26,7 @@ import org.springframework.core.ResolvableType;
import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.util.ClassUtils;
import org.springframework.util.ReflectionUtils;
import static org.assertj.core.api.Assertions.assertThat;
@@ -81,7 +82,7 @@ public class TransactionalApplicationListenerMethodAdapterTests {
assertThat(callback.postEvent).isEqualTo(event);
assertThat(callback.ex).isNull();
assertThat(adapter.getTransactionPhase()).isEqualTo(TransactionPhase.AFTER_COMMIT);
assertThat(adapter.getListenerId()).endsWith("SampleEvents.defaultPhase(class java.lang.String)");
assertThat(adapter.getListenerId()).endsWith("SampleEvents.defaultPhase(java.lang.String)");
}
@Test
@@ -102,7 +103,7 @@ public class TransactionalApplicationListenerMethodAdapterTests {
assertThat(callback.ex).isInstanceOf(RuntimeException.class);
assertThat(callback.ex.getMessage()).isEqualTo("event");
assertThat(adapter.getTransactionPhase()).isEqualTo(TransactionPhase.BEFORE_COMMIT);
assertThat(adapter.getListenerId()).isEqualTo(adapter.getDefaultListenerId());
assertThat(adapter.getListenerId()).isEqualTo(ClassUtils.getQualifiedMethodName(m) + "(java.lang.String)");
}
@Test