@@ -465,7 +465,7 @@ private boolean processMainAndRetryListeners(KafkaListener kafkaListener, Object
465
465
}
466
466
467
467
RetryTopicConfigurer .EndpointProcessor endpointProcessor = endpointToProcess ->
468
- this .doProcessKafkaListenerAnnotation (endpointToProcess , kafkaListener , bean );
468
+ this .processKafkaListenerAnnotationForRetryTopic (endpointToProcess , kafkaListener , bean );
469
469
470
470
String beanRef = kafkaListener .beanRef ();
471
471
this .listenerScope .addListener (beanRef , bean );
@@ -546,28 +546,26 @@ protected void processListener(MethodKafkaListenerEndpoint<?, ?> endpoint, Kafka
546
546
this .listenerScope .addListener (beanRef , bean );
547
547
}
548
548
549
- doProcessKafkaListenerAnnotation (endpoint , kafkaListener , bean );
549
+ processKafkaListenerAnnotationBeforeRegistration (endpoint , kafkaListener , bean );
550
550
551
551
String containerFactory = resolve (kafkaListener .containerFactory ());
552
552
KafkaListenerContainerFactory <?> listenerContainerFactory = resolveContainerFactory (kafkaListener , containerFactory , beanName );
553
553
554
554
this .registrar .registerEndpoint (endpoint , listenerContainerFactory );
555
555
556
- endpoint .setBeanFactory (this .beanFactory );
557
- String errorHandlerBeanName = resolveExpressionAsString (kafkaListener .errorHandler (), "errorHandler" );
558
- if (StringUtils .hasText (errorHandlerBeanName )) {
559
- resolveErrorHandler (endpoint , kafkaListener );
560
- }
561
- String converterBeanName = resolveExpressionAsString (kafkaListener .contentTypeConverter (), "contentTypeConverter" );
562
- if (StringUtils .hasText (converterBeanName )) {
563
- resolveContentTypeConverter (endpoint , kafkaListener );
564
- }
556
+ processKafkaListenerEndpointAfterRegistration (endpoint , kafkaListener );
557
+
565
558
if (StringUtils .hasText (beanRef )) {
566
559
this .listenerScope .removeListener (beanRef );
567
560
}
568
561
}
569
562
570
- private void doProcessKafkaListenerAnnotation (MethodKafkaListenerEndpoint <?, ?> endpoint , KafkaListener kafkaListener , Object bean ) {
563
+ private void processKafkaListenerAnnotationForRetryTopic (MethodKafkaListenerEndpoint <?, ?> endpoint , KafkaListener kafkaListener , Object bean ) {
564
+ processKafkaListenerAnnotationBeforeRegistration (endpoint , kafkaListener , bean );
565
+ processKafkaListenerEndpointAfterRegistration (endpoint , kafkaListener );
566
+ }
567
+
568
+ private void processKafkaListenerAnnotationBeforeRegistration (MethodKafkaListenerEndpoint <?, ?> endpoint , KafkaListener kafkaListener , Object bean ) {
571
569
endpoint .setBean (bean );
572
570
endpoint .setMessageHandlerMethodFactory (this .messageHandlerMethodFactory );
573
571
endpoint .setId (getEndpointId (kafkaListener ));
@@ -595,6 +593,18 @@ private void doProcessKafkaListenerAnnotation(MethodKafkaListenerEndpoint<?, ?>
595
593
endpoint .setSplitIterables (kafkaListener .splitIterables ());
596
594
}
597
595
596
+ private void processKafkaListenerEndpointAfterRegistration (MethodKafkaListenerEndpoint <?, ?> endpoint , KafkaListener kafkaListener ) {
597
+ endpoint .setBeanFactory (this .beanFactory );
598
+ String errorHandlerBeanName = resolveExpressionAsString (kafkaListener .errorHandler (), "errorHandler" );
599
+ if (StringUtils .hasText (errorHandlerBeanName )) {
600
+ resolveErrorHandler (endpoint , kafkaListener );
601
+ }
602
+ String converterBeanName = resolveExpressionAsString (kafkaListener .contentTypeConverter (), "contentTypeConverter" );
603
+ if (StringUtils .hasText (converterBeanName )) {
604
+ resolveContentTypeConverter (endpoint , kafkaListener );
605
+ }
606
+ }
607
+
598
608
private void resolveErrorHandler (MethodKafkaListenerEndpoint <?, ?> endpoint , KafkaListener kafkaListener ) {
599
609
Object errorHandler = resolveExpression (kafkaListener .errorHandler ());
600
610
if (errorHandler instanceof KafkaListenerErrorHandler ) {
0 commit comments