From 55b9f541fba8ad7986a5954fb068df048e23407d Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 22 Jun 2020 11:09:19 +0200 Subject: [PATCH] GH-1984 Fix applicationMetrics initialization Resolves #1984 --- .../stream/function/FunctionConfiguration.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java index 1c5022d85..31122910f 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/FunctionConfiguration.java @@ -326,9 +326,18 @@ public class FunctionConfiguration { String functionDefinition = bindableProxyFactory instanceof BindableFunctionProxyFactory ? ((BindableFunctionProxyFactory) bindableProxyFactory).getFunctionDefinition() : this.functionProperties.getDefinition(); - FunctionInvocationWrapper function = functionCatalog.lookup(functionDefinition); - if (function != null && !function.isSupplier()) { - this.bindFunctionToDestinations(bindableProxyFactory, functionDefinition); + + boolean shouldNotProcess = false; + if (!(bindableProxyFactory instanceof BindableFunctionProxyFactory)) { + Set outputBindingNames = bindableProxyFactory.getOutputs(); + shouldNotProcess = !CollectionUtils.isEmpty(outputBindingNames) + && outputBindingNames.iterator().next().equals("applicationMetrics"); + } + if (StringUtils.hasText(functionDefinition) && !shouldNotProcess) { + FunctionInvocationWrapper function = functionCatalog.lookup(functionDefinition); + if (function != null && !function.isSupplier()) { + this.bindFunctionToDestinations(bindableProxyFactory, functionDefinition); + } } } }