@@ -410,12 +410,8 @@ Processing errors: Records are acknowledged as `REJECT`
410410@Bean
411411public ShareKafkaListenerContainerFactory<String, String> shareKafkaListenerContainerFactory(
412412 ShareConsumerFactory<String, String> shareConsumerFactory) {
413- ShareKafkaListenerContainerFactory<String, String> factory =
414- new ShareKafkaListenerContainerFactory<>(shareConsumerFactory);
415- // Implicit mode is the default (false means implicit acknowledgment)
416- factory.getContainerProperties().setExplicitShareAcknowledgment(false);
417-
418- return factory;
413+ // Implicit mode is the default - no additional configuration needed
414+ return new ShareKafkaListenerContainerFactory<>(shareConsumerFactory);
419415}
420416----
421417
@@ -446,17 +442,20 @@ public ShareConsumerFactory<String, String> explicitShareConsumerFactory() {
446442[source,java]
447443----
448444@Bean
449- public ShareKafkaListenerContainerFactory<String, String> explicitShareKafkaListenerContainerFactory(
450- ShareConsumerFactory<String, String> shareConsumerFactory) {
451-
452- ShareKafkaListenerContainerFactory<String, String> factory =
453- new ShareKafkaListenerContainerFactory<>(shareConsumerFactory);
454-
455- // Configure acknowledgment mode at container factory level
456- // true means explicit acknowledgment is required
457- factory.getContainerProperties().setExplicitShareAcknowledgment(true);
445+ public ShareConsumerFactory<String, String> explicitShareConsumerFactory() {
446+ Map<String, Object> props = new HashMap<>();
447+ props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
448+ props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
449+ props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
450+ props.put(ConsumerConfig.SHARE_ACKNOWLEDGEMENT_MODE_CONFIG, "explicit");
451+ return new DefaultShareConsumerFactory<>(props);
452+ }
458453
459- return factory;
454+ @Bean
455+ public ShareKafkaListenerContainerFactory<String, String> explicitShareKafkaListenerContainerFactory(
456+ ShareConsumerFactory<String, String> explicitShareConsumerFactory) {
457+ // The factory will detect the explicit acknowledgment mode from the consumer factory configuration
458+ return new ShareKafkaListenerContainerFactory<>(explicitShareConsumerFactory);
460459}
461460----
462461
0 commit comments