From 2b95f26d649ce881cfce2fae266beb32f1230ad0 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Wed, 7 Jun 2023 14:06:27 +0200 Subject: [PATCH] Polishing previous PR Resolves #2748 --- .../cloud/stream/function/StreamBridgeTests.java | 2 +- .../cloud/stream/function/FunctionConfiguration.java | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/core/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java b/core/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java index ffaa2d0ea..4a6c191e3 100644 --- a/core/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java +++ b/core/spring-cloud-stream-integration-tests/src/test/java/org/springframework/cloud/stream/function/StreamBridgeTests.java @@ -531,7 +531,7 @@ public class StreamBridgeTests { void testSendingMessageToOutputOfExistingSupplier() throws Exception { try (ConfigurableApplicationContext context = new SpringApplicationBuilder(TestChannelBinderConfiguration .getCompleteConfiguration(TestConfiguration.class)) - .web(WebApplicationType.NONE).run("--spring.cloud.stream.source=supplier;foo", + .web(WebApplicationType.NONE).run("--spring.cloud.stream.output-bindings=supplier;foo", "--spring.jmx.enabled=false")) { StreamBridge bridge = context.getBean(StreamBridge.class); 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 c0f8f3158..ac125e17e 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 @@ -195,6 +195,9 @@ public class FunctionConfiguration { // see https://github.com/spring-cloud/spring-cloud-stream/issues/2027 String functionDefinition = proxyFactory.getFunctionDefinition(); + if (!StringUtils.hasText(functionDefinition)) { + continue; + } String[] functionNames = StringUtils.delimitedListToStringArray(functionDefinition.replaceAll(",", "|").trim(), "|"); Function supplier = null; @@ -886,6 +889,7 @@ public class FunctionConfiguration { String[] outputBindings = StringUtils.hasText(bindingProperties.getOutputBindings()) ? bindingProperties.getOutputBindings().split(";") : ( StringUtils.hasText(bindingProperties.getOutputBindings()) ? bindingProperties.getOutputBindings().split(";") : new String[0] ); + for (String inputBindingName : inputBindings) { FunctionInvocationWrapper sourceFunc = functionCatalog.lookup(inputBindingName); if (sourceFunc != null && !sourceFunc.getFunctionDefinition().equals(inputBindingName)) { @@ -917,7 +921,6 @@ public class FunctionConfiguration { BindableFunctionProxyFactory.class, () -> proxyFactory); } } - } @Override