Support extended default properties

Currenlty, we only support default properties for core producer/consumer (spring.cloud.stream.default.producer|consumer...).
These changes add support for configuring default properties for extended producer and consumer properties.

For example, if the binder type is foo, then this allows the applications to configure default properties across
multiple producer or consumer bindings in the form of spring.cloud.stream.foo.default.producer|consumer.property.

The default prefixes for the extended properties are dictated by the respective binder implementations.

Resolves #1360

Manual merging for Map in MergableProperties

Handling values with defaults in extended producer/consumer properties
This commit is contained in:
Soby Chacko
2018-09-17 09:56:37 -04:00
committed by Oleg Zhurakousky
parent 056898b2ca
commit 07b5a691d4
11 changed files with 379 additions and 13 deletions

View File

@@ -1445,6 +1445,8 @@ The `<channelName>` represents the name of the channel being configured (for exa
To avoid repetition, Spring Cloud Stream supports setting values for all channels, in the format of `spring.cloud.stream.default.<property>=<value>`.
When it comes to avoiding repetitions for extended binding properties, this format should be used - `spring.cloud.stream.<binder-type>.default.<producer|consumer>.<property>=<value>`.
In what follows, we indicate where we have omitted the `spring.cloud.stream.bindings.<channelName>.` prefix and focus just on the property name, with the understanding that the prefix ise included at runtime.
==== Common Binding Properties