diff --git a/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/annotations/EnableEventListeners.java b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/annotations/EnableEventListeners.java index b70cee39..366c97e0 100644 --- a/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/annotations/EnableEventListeners.java +++ b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/annotations/EnableEventListeners.java @@ -2,6 +2,7 @@ import org.reactivecommons.async.kafka.config.RCKafkaConfig; import org.reactivecommons.async.kafka.config.RCKafkaEventListenerConfig; +import org.reactivecommons.async.kafka.config.RCKafkaHandlersConfiguration; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -14,7 +15,7 @@ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) @Documented -@Import({RCKafkaEventListenerConfig.class, RCKafkaConfig.class}) +@Import({RCKafkaEventListenerConfig.class, RCKafkaHandlersConfiguration.class, RCKafkaConfig.class}) @Configuration public @interface EnableEventListeners { } diff --git a/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/annotations/EnableNotificationListener.java b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/annotations/EnableNotificationListener.java index a96a0f26..1ae0af73 100644 --- a/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/annotations/EnableNotificationListener.java +++ b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/annotations/EnableNotificationListener.java @@ -1,6 +1,7 @@ package org.reactivecommons.async.kafka.annotations; import org.reactivecommons.async.kafka.config.RCKafkaConfig; +import org.reactivecommons.async.kafka.config.RCKafkaHandlersConfiguration; import org.reactivecommons.async.kafka.config.RCKafkaNotificationEventListenerConfig; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -15,7 +16,7 @@ @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) @Documented -@Import({RCKafkaNotificationEventListenerConfig.class, RCKafkaConfig.class}) +@Import({RCKafkaNotificationEventListenerConfig.class, RCKafkaHandlersConfiguration.class, RCKafkaConfig.class}) @Configuration public @interface EnableNotificationListener { } diff --git a/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaConfig.java b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaConfig.java index 8e023551..950cb497 100644 --- a/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaConfig.java +++ b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaConfig.java @@ -70,22 +70,6 @@ public ConnectionManager kafkaConnectionManager(AsyncKafkaPropsDomain props, return connectionManager; } - @Bean - public DomainHandlers buildHandlers(AsyncKafkaPropsDomain props, ApplicationContext context, - HandlerRegistry primaryRegistry, DefaultCommandHandler commandHandler) { - DomainHandlers handlers = new DomainHandlers(); - final Map registries = context.getBeansOfType(HandlerRegistry.class); - if (!registries.containsValue(primaryRegistry)) { - registries.put("primaryHandlerRegistry", primaryRegistry); - } - props.forEach((domain, properties) -> { - HandlerResolver resolver = HandlerResolverBuilder.buildResolver(domain, registries, commandHandler); - handlers.add(domain, resolver); - }); - return handlers; - } - - // Sender @Bean @ConditionalOnMissingBean(DomainEventBus.class) diff --git a/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaEventListenerConfig.java b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaEventListenerConfig.java index e3930d40..47ee16c2 100644 --- a/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaEventListenerConfig.java +++ b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaEventListenerConfig.java @@ -1,6 +1,5 @@ package org.reactivecommons.async.kafka.config; -import lombok.RequiredArgsConstructor; import org.reactivecommons.async.commons.converters.MessageConverter; import org.reactivecommons.async.commons.ext.CustomReporter; import org.reactivecommons.async.kafka.config.props.AsyncKafkaProps; @@ -14,7 +13,6 @@ import static org.reactivecommons.async.api.HandlerRegistry.DEFAULT_DOMAIN; @Configuration -@RequiredArgsConstructor public class RCKafkaEventListenerConfig { @Bean diff --git a/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaHandlersConfiguration.java b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaHandlersConfiguration.java new file mode 100644 index 00000000..7eecd274 --- /dev/null +++ b/starters/async-kafka-starter/src/main/java/org/reactivecommons/async/kafka/config/RCKafkaHandlersConfiguration.java @@ -0,0 +1,32 @@ +package org.reactivecommons.async.kafka.config; + + +import org.reactivecommons.async.api.DefaultCommandHandler; +import org.reactivecommons.async.api.HandlerRegistry; +import org.reactivecommons.async.commons.HandlerResolver; +import org.reactivecommons.async.commons.HandlerResolverBuilder; +import org.reactivecommons.async.kafka.config.props.AsyncKafkaPropsDomain; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Map; + +@Configuration +public class RCKafkaHandlersConfiguration { + + @Bean + public DomainHandlers buildHandlers(AsyncKafkaPropsDomain props, ApplicationContext context, + HandlerRegistry primaryRegistry, DefaultCommandHandler commandHandler) { + DomainHandlers handlers = new DomainHandlers(); + final Map registries = context.getBeansOfType(HandlerRegistry.class); + if (!registries.containsValue(primaryRegistry)) { + registries.put("primaryHandlerRegistry", primaryRegistry); + } + props.forEach((domain, properties) -> { + HandlerResolver resolver = HandlerResolverBuilder.buildResolver(domain, registries, commandHandler); + handlers.add(domain, resolver); + }); + return handlers; + } +}