diff --git a/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/config/EventPublicationAutoConfiguration.java b/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/config/EventPublicationAutoConfiguration.java index cb602b288..77c036e47 100644 --- a/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/config/EventPublicationAutoConfiguration.java +++ b/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/config/EventPublicationAutoConfiguration.java @@ -62,6 +62,7 @@ public class EventPublicationAutoConfiguration extends EventPublicationConfigura @Bean @Role(BeanDefinition.ROLE_INFRASTRUCTURE) @ConditionalOnBean(EventPublicationRepository.class) + @ConditionalOnMissingBean EventPublicationRegistry eventPublicationRegistry(EventPublicationRepository repository, ObjectProvider clock) { return super.eventPublicationRegistry(repository, clock); @@ -70,6 +71,7 @@ EventPublicationRegistry eventPublicationRegistry(EventPublicationRepository rep @Bean @Role(BeanDefinition.ROLE_INFRASTRUCTURE) @ConditionalOnBean(EventPublicationRegistry.class) + @ConditionalOnMissingBean static PersistentApplicationEventMulticaster applicationEventMulticaster( ObjectFactory eventPublicationRegistry, ObjectFactory environment) { @@ -79,6 +81,7 @@ static PersistentApplicationEventMulticaster applicationEventMulticaster( @Bean @Role(BeanDefinition.ROLE_INFRASTRUCTURE) @ConditionalOnBean(EventPublicationRegistry.class) + @ConditionalOnMissingBean static CompletionRegisteringAdvisor completionRegisteringAdvisor(ObjectFactory registry) { return EventPublicationConfiguration.completionRegisteringAdvisor(registry); } diff --git a/spring-modulith-events/spring-modulith-events-core/src/test/java/org/springframework/modulith/events/config/EventPublicationAutoConfigurationIntegrationTests.java b/spring-modulith-events/spring-modulith-events-core/src/test/java/org/springframework/modulith/events/config/EventPublicationAutoConfigurationIntegrationTests.java index a102e16e8..27e3dd29b 100644 --- a/spring-modulith-events/spring-modulith-events-core/src/test/java/org/springframework/modulith/events/config/EventPublicationAutoConfigurationIntegrationTests.java +++ b/spring-modulith-events/spring-modulith-events-core/src/test/java/org/springframework/modulith/events/config/EventPublicationAutoConfigurationIntegrationTests.java @@ -137,6 +137,15 @@ void exposesCompletedAndIncompleteEventPublications() { }); } + @Test // GH-374 + void compatibleWithEnablePersistentDomainEvents() { + basicSetup() + .withUserConfiguration(EnablePersistentDomainEventConfiguration.class) + .run(context -> { + assertThat(context).hasNotFailed(); + }); + } + private static ContextConsumer expect(Function extractor, @Nullable T expected) { @@ -155,4 +164,7 @@ private ApplicationContextRunner basicSetup() { @EnableAsync(mode = AdviceMode.ASPECTJ) static class CustomAsyncConfiguration {} + + @EnablePersistentDomainEvents + static class EnablePersistentDomainEventConfiguration {} }