From e15e5e3a15f7a331e3e0249245924c608cde680c Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 31 May 2023 18:36:33 +0200 Subject: [PATCH] Fix function auto-detection when single function and input/output-bindings are defined --- .../cloud/stream/function/FunctionConfiguration.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java b/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java index dc5f0b6c9..60ab1eeb0 100644 --- a/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java +++ b/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java @@ -906,6 +906,9 @@ public class FunctionConfiguration { ); for (String inputBindingName : inputBindings) { FunctionInvocationWrapper sourceFunc = functionCatalog.lookup(inputBindingName); + if (sourceFunc != null && !sourceFunc.getFunctionDefinition().equals(inputBindingName) && inputBindings.length == 1) { + sourceFunc = null; + } if (sourceFunc == null || //see https://github.com/spring-cloud/spring-cloud-stream/issues/2229 sourceFunc.isSupplier() || @@ -921,6 +924,9 @@ public class FunctionConfiguration { for (String outputBindingName : outputBindings) { FunctionInvocationWrapper sourceFunc = functionCatalog.lookup(outputBindingName); + if (sourceFunc != null && !sourceFunc.getFunctionDefinition().equals(outputBindingName) && outputBindings.length == 1) { + sourceFunc = null; + } if (sourceFunc == null || //see https://github.com/spring-cloud/spring-cloud-stream/issues/2229 sourceFunc.isConsumer() ||