diff --git a/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/BindingsLifecycleController.java b/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/BindingsLifecycleController.java index 0a11977db..585c0e100 100644 --- a/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/BindingsLifecycleController.java +++ b/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/binding/BindingsLifecycleController.java @@ -89,9 +89,9 @@ public class BindingsLifecycleController implements ApplicationContextAware { */ public
P defineInputBinding(String bindingName) { BindableFunctionProxyFactory bindingProxyFactory = - new BindableFunctionProxyFactory(bindingName, 1, 0, this.applicationContext.getBean(StreamFunctionProperties.class)); + new BindableFunctionProxyFactory(bindingName, 1, 0, this.applicationContext.getBean(StreamFunctionProperties.class), false); this.defineBinding(bindingProxyFactory); - return this.getExtensionProperties(bindingName + "-in-0"); + return this.getExtensionProperties(bindingName); } /** @@ -102,9 +102,9 @@ public class BindingsLifecycleController implements ApplicationContextAware { */ public
P defineOutputBinding(String bindingName) { BindableFunctionProxyFactory bindingProxyFactory = - new BindableFunctionProxyFactory(bindingName, 0, 1, this.applicationContext.getBean(StreamFunctionProperties.class)); + new BindableFunctionProxyFactory(bindingName, 0, 1, this.applicationContext.getBean(StreamFunctionProperties.class), false); this.defineBinding(bindingProxyFactory); - return this.getExtensionProperties(bindingName + "-out-0"); + return this.getExtensionProperties(bindingName); } /** diff --git a/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/BindableFunctionProxyFactory.java b/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/BindableFunctionProxyFactory.java index 6b2a57ba1..2d2ddbe26 100644 --- a/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/BindableFunctionProxyFactory.java +++ b/core/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/function/BindableFunctionProxyFactory.java @@ -77,7 +77,7 @@ public class BindableFunctionProxyFactory extends BindableProxyFactory implement this(functionDefinition, inputCount, outputCount, functionProperties, new SupportedBindableFeatures(), true); } - BindableFunctionProxyFactory(String functionDefinition, int inputCount, int outputCount, StreamFunctionProperties functionProperties, boolean functionExist) { + public BindableFunctionProxyFactory(String functionDefinition, int inputCount, int outputCount, StreamFunctionProperties functionProperties, boolean functionExist) { this(functionDefinition, inputCount, outputCount, functionProperties, new SupportedBindableFeatures(), functionExist); } diff --git a/docs/modules/ROOT/pages/spring-cloud-stream/binding_visualization_control.adoc b/docs/modules/ROOT/pages/spring-cloud-stream/binding_visualization_control.adoc index eabf453af..f78b8a2ed 100644 --- a/docs/modules/ROOT/pages/spring-cloud-stream/binding_visualization_control.adoc +++ b/docs/modules/ROOT/pages/spring-cloud-stream/binding_visualization_control.adoc @@ -42,10 +42,12 @@ You can than manage its properties by calling `getExtensionProperties(..)` metho [source,java] ---- -KafkaConsumerProperties properties = controller.getExtensionProperties("test-input-binding-in-0”); +KafkaConsumerProperties properties = controller.getExtensionProperties("test-input-binding”); ---- +NOTE: Unlike binding names derived from function definition, explicitly defined bindings do not carry the `in-0/out-0` suffix since they are not backed by an actual function. + The `getExtensionProperties(..)` operation is defined to ensure you get the proper type of the configuration properties class, so depending on the binder and binding used you can safely cast your extension properties to appropriate type. In our case it is `KafkaConsumerProperties` properties. NOTE: Depending on the type of property you change, you may need to re-start the binding for it to take effect (ass seen earlier)