From 6d4cb43c827179fafac89c2a03c46f1b2008284e Mon Sep 17 00:00:00 2001 From: Artem Bilan Date: Thu, 19 Dec 2024 14:56:10 -0500 Subject: [PATCH] GH-119: Fix auto-wiring ambiguity in the `MailSupplierConfiguration` Fixes: https://github.com/spring-cloud/spring-functions-catalog/issues/119 --- .../mail/MailSupplierConfiguration.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/supplier/spring-mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierConfiguration.java b/supplier/spring-mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierConfiguration.java index 6a514d6c..f7e57d14 100644 --- a/supplier/spring-mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierConfiguration.java +++ b/supplier/spring-mail-supplier/src/main/java/org/springframework/cloud/fn/supplier/mail/MailSupplierConfiguration.java @@ -66,8 +66,8 @@ public class MailSupplierConfiguration { } @Bean - public Publisher> mailInboundFlow(MessageProducerSupport messageProducer) { - return IntegrationFlow.from(messageProducer) + public Publisher> mailInboundFlow(MessageProducerSupport mailChannelAdapter) { + return IntegrationFlow.from(mailChannelAdapter) .transform(Mail.toStringTransformer(this.properties.getCharset())) .enrichHeaders((h) -> h.defaultOverwrite(true) .header(MailHeaders.TO, arrayToListProcessor(MailHeaders.TO)) @@ -76,12 +76,7 @@ public class MailSupplierConfiguration { .toReactivePublisher(true); } - @Bean - public Supplier>> mailSupplier(Publisher> messagePublisher) { - return () -> Flux.from(messagePublisher); - } - - private HeaderValueMessageProcessor arrayToListProcessor(String header) { + private static HeaderValueMessageProcessor arrayToListProcessor(String header) { return new AbstractHeaderValueMessageProcessor>() { @Override @@ -92,6 +87,11 @@ public class MailSupplierConfiguration { }; } + @Bean + public Supplier>> mailSupplier(Publisher> mailInboundFlow) { + return () -> Flux.from(mailInboundFlow); + } + @Bean("mailChannelAdapter") @ConditionalOnProperty("mail.supplier.idle-imap") MessageProducerSpec imapIdleProducer( @@ -103,8 +103,7 @@ public class MailSupplierConfiguration { .userFlag(this.properties.getUserFlag()) .javaMailProperties(getJavaMailProperties(urlName)) .selectorExpression(this.properties.getExpression()) - .shouldMarkMessagesAsRead(this.properties.isMarkAsRead()) - .autoStartup(false); + .shouldMarkMessagesAsRead(this.properties.isMarkAsRead()); if (imapIdleChannelAdapterSpecCustomizer != null) { imapIdleChannelAdapterSpecCustomizer.customize(imapIdleChannelAdapterSpec); @@ -139,10 +138,7 @@ public class MailSupplierConfiguration { @Bean("mailChannelAdapter") @ConditionalOnProperty(value = "mail.supplier.idle-imap", matchIfMissing = true, havingValue = "false") MessageProducerSupport mailMessageProducer(MessageSource mailMessageSource) { - ReactiveMessageSourceProducer reactiveMessageSourceProducer = new ReactiveMessageSourceProducer( - mailMessageSource); - reactiveMessageSourceProducer.setAutoStartup(false); - return reactiveMessageSourceProducer; + return new ReactiveMessageSourceProducer(mailMessageSource); } private Pop3MailInboundChannelAdapterSpec getPop3ChannelAdapterSpec(URLName urlName) {