Class CustomSuffixBindHandler
java.lang.Object
org.springframework.boot.context.properties.bind.AbstractBindHandler
com.broadleafcommerce.cloudstream.binding.CustomSuffixBindHandler
- All Implemented Interfaces:
org.springframework.boot.context.properties.bind.BindHandler
public class CustomSuffixBindHandler
extends org.springframework.boot.context.properties.bind.AbstractBindHandler
Custom Spring
BindHandler
to support
dynamic re-naming of Spring Cloud Stream BindingProperties
at runtime.
This supports use cases where there is a need to share a single message broker instance across
multiple environment specific or region specific application instances.
To facilitate segmenting destinations and groups for each environment, this custom bind handler
allows modifying each ALREADY DEFINED Spring Cloud Stream destination and group definitions with
a particular suffix to allow segmentation across environments via a property.
e.g. if you had existing bindings already defined like:
spring.cloud.stream.binding.input.destination=topic
spring.cloud.stream.binding.input.group=subscription
Assuming the appropriate SUFFIX is configured CustomCloudstreamBindingConfiguration
, this
custom bind handler will modify the properties and bind the following: "topic-SUFFIX" and
"subscription-SUFFIX" instead- Author:
- Elbert Bautista (elbertbautista)
-
Field Summary
Fields inherited from interface org.springframework.boot.context.properties.bind.BindHandler
DEFAULT
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T> org.springframework.boot.context.properties.bind.Bindable<T>
onStart
(org.springframework.boot.context.properties.source.ConfigurationPropertyName name, org.springframework.boot.context.properties.bind.Bindable<T> target, org.springframework.boot.context.properties.bind.BindContext context) onSuccess
(org.springframework.boot.context.properties.source.ConfigurationPropertyName name, org.springframework.boot.context.properties.bind.Bindable<?> target, org.springframework.boot.context.properties.bind.BindContext context, Object result) Methods inherited from class org.springframework.boot.context.properties.bind.AbstractBindHandler
onFailure, onFinish
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.boot.context.properties.bind.BindHandler
onCreate
-
Constructor Details
-
CustomSuffixBindHandler
-
-
Method Details
-
onStart
public <T> org.springframework.boot.context.properties.bind.Bindable<T> onStart(org.springframework.boot.context.properties.source.ConfigurationPropertyName name, org.springframework.boot.context.properties.bind.Bindable<T> target, org.springframework.boot.context.properties.bind.BindContext context) - Specified by:
onStart
in interfaceorg.springframework.boot.context.properties.bind.BindHandler
- Overrides:
onStart
in classorg.springframework.boot.context.properties.bind.AbstractBindHandler
-
onSuccess
public Object onSuccess(org.springframework.boot.context.properties.source.ConfigurationPropertyName name, org.springframework.boot.context.properties.bind.Bindable<?> target, org.springframework.boot.context.properties.bind.BindContext context, Object result) - Specified by:
onSuccess
in interfaceorg.springframework.boot.context.properties.bind.BindHandler
- Overrides:
onSuccess
in classorg.springframework.boot.context.properties.bind.AbstractBindHandler
-