diff --git a/src/main/java/org/fireflyframework/transactional/saga/config/SagaPersistenceAutoConfiguration.java b/src/main/java/org/fireflyframework/transactional/saga/config/SagaPersistenceAutoConfiguration.java index d71724b..e93fcf2 100644 --- a/src/main/java/org/fireflyframework/transactional/saga/config/SagaPersistenceAutoConfiguration.java +++ b/src/main/java/org/fireflyframework/transactional/saga/config/SagaPersistenceAutoConfiguration.java @@ -33,7 +33,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Primary; /** * Auto-configuration for Saga persistence capabilities. @@ -64,7 +63,6 @@ public class SagaPersistenceAutoConfiguration { */ @Bean @ConditionalOnMissingBean - @Primary public ObjectMapper sagaObjectMapper() { ObjectMapper mapper = new ObjectMapper(); mapper.findAndRegisterModules(); // This will register JSR310 module for Java 8 time types diff --git a/src/main/java/org/fireflyframework/transactional/shared/config/TransactionalEngineConfiguration.java b/src/main/java/org/fireflyframework/transactional/shared/config/TransactionalEngineConfiguration.java index a6f923c..c839661 100644 --- a/src/main/java/org/fireflyframework/transactional/shared/config/TransactionalEngineConfiguration.java +++ b/src/main/java/org/fireflyframework/transactional/shared/config/TransactionalEngineConfiguration.java @@ -142,12 +142,6 @@ public SagaEngine sagaEngine(SagaRegistry registry, ); } - @Bean - @ConditionalOnMissingBean - public TccEvents tccEvents(LoggingTransactionalObserver loggingObserver) { - return new TccToGenericObserverAdapter(loggingObserver); - } - @Bean @ConditionalOnMissingBean public TccEventPublisher tccEventPublisher() { @@ -263,12 +257,21 @@ public SagaEvents sagaEventsComposite(ApplicationContext applicationContext, @Bean @Primary - @ConditionalOnMissingBean(TccEvents.class) - public TccEvents tccEventsComposite(LoggingTransactionalObserver logger, + public TccEvents tccEventsComposite(ApplicationContext applicationContext, + LoggingTransactionalObserver logger, ObjectProvider micrometer, ObjectProvider tracing) { List sinks = new ArrayList<>(); + // Add all other TccEvents beans first (including test beans) + // Exclude the composite itself to avoid circular dependency + Map allEvents = applicationContext.getBeansOfType(TccEvents.class); + for (Map.Entry entry : allEvents.entrySet()) { + if (!"tccEventsComposite".equals(entry.getKey())) { + sinks.add(entry.getValue()); + } + } + // Add logging adapter sinks.add(new TccToGenericObserverAdapter(logger)); @@ -333,6 +336,7 @@ public TccCompositor tccCompositor(TccEngine tccEngine, TccRegistry tccRegistry, } @Bean + @ConditionalOnMissingBean public WebClient.Builder webClientBuilder() { return WebClient.builder(); } diff --git a/src/test/java/org/fireflyframework/transactional/tcc/it/TccEngineIntegrationTest.java b/src/test/java/org/fireflyframework/transactional/tcc/it/TccEngineIntegrationTest.java index 8e20257..3c508cd 100644 --- a/src/test/java/org/fireflyframework/transactional/tcc/it/TccEngineIntegrationTest.java +++ b/src/test/java/org/fireflyframework/transactional/tcc/it/TccEngineIntegrationTest.java @@ -29,7 +29,6 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -67,7 +66,6 @@ public FailingTcc failingTcc() { } @Bean - @Primary public TccEvents testEvents() { return new TestEvents(); }