package io.pillopl.library.common.events.publisher; import io.micrometer.core.instrument.MeterRegistry; import io.pillopl.library.commons.events.DomainEvents; import io.pillopl.library.commons.events.publisher.JustForwardDomainEventPublisher; import io.pillopl.library.commons.events.publisher.MeteredDomainEventPublisher; import io.pillopl.library.commons.events.publisher.StoreAndForwardDomainEventPublisher; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; @Configuration public class DomainEventsTestConfig { @Bean @Primary DomainEvents domainEventsWithStorage(ApplicationEventPublisher applicationEventPublisher, MeterRegistry meterRegistry) { return new StoreAndForwardDomainEventPublisher( new MeteredDomainEventPublisher( new JustForwardDomainEventPublisher(applicationEventPublisher), meterRegistry), new InMemoryEventsStorage() ); } }