From ff8df678e7552712efde3baa899703633b8883ba Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Thu, 26 Jan 2023 09:30:50 +0100 Subject: [PATCH] GH-125 - More detailed logging of pending event publication lookup on startup. --- .../events/DefaultEventPublicationRegistry.java | 3 ++- .../modulith/events/EventPublicationRegistry.java | 3 ++- .../support/PersistentApplicationEventMulticaster.java | 10 +++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/DefaultEventPublicationRegistry.java b/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/DefaultEventPublicationRegistry.java index b03831ad..68ec6198 100644 --- a/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/DefaultEventPublicationRegistry.java +++ b/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/DefaultEventPublicationRegistry.java @@ -15,6 +15,7 @@ */ package org.springframework.modulith.events; +import java.util.Collection; import java.util.List; import java.util.stream.Stream; @@ -68,7 +69,7 @@ public class DefaultEventPublicationRegistry implements DisposableBean, EventPub * @see org.springframework.modulith.events.EventPublicationRegistry#findIncompletePublications() */ @Override - public Iterable findIncompletePublications() { + public Collection findIncompletePublications() { return events.findIncompletePublications(); } diff --git a/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/EventPublicationRegistry.java b/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/EventPublicationRegistry.java index e869d393..0e747abc 100644 --- a/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/EventPublicationRegistry.java +++ b/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/EventPublicationRegistry.java @@ -15,6 +15,7 @@ */ package org.springframework.modulith.events; +import java.util.Collection; import java.util.stream.Stream; import org.springframework.context.ApplicationListener; @@ -42,7 +43,7 @@ public interface EventPublicationRegistry { * * @return will never be {@literal null}. */ - Iterable findIncompletePublications(); + Collection findIncompletePublications(); /** * Marks the publication for the given event and {@link PublicationTargetIdentifier} as completed. diff --git a/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/support/PersistentApplicationEventMulticaster.java b/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/support/PersistentApplicationEventMulticaster.java index f0a4f122..d602f86c 100644 --- a/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/support/PersistentApplicationEventMulticaster.java +++ b/spring-modulith-events/spring-modulith-events-core/src/main/java/org/springframework/modulith/events/support/PersistentApplicationEventMulticaster.java @@ -113,9 +113,13 @@ public class PersistentApplicationEventMulticaster extends AbstractApplicationEv @Override public void afterSingletonsInstantiated() { - for (EventPublication publication : registry.get().findIncompletePublications()) { - invokeTargetListener(publication); - } + LOGGER.debug("Looking up previously pending event publications…"); + + var publications = registry.get().findIncompletePublications(); + + LOGGER.debug("{} found.", publications.isEmpty() ? "None" : publications.size()); + + publications.forEach(this::invokeTargetListener); } private void invokeTargetListener(EventPublication publication) {