- Currently there is no multi-out support for Supplier and I am not really sure what the use case would be so holding off.
- The logic in FunctionConfiguration effectively split in bootstrapping simple functions (e.g., Function<String, String>) vs. multi-in/out (e.g., Function<Tuple2<Flux<String>, Flux<String>>, Flux<String>>). This is temporary given that multi-in/out is still considered WIP. Once it becomes stable we can merge the two two for consistency.
- Added multiple input/output support for TestBinder
- Updated documentation
Resolves#1746Resolves#1745Resolves#1314
- Support `batchMode` in function properties so, for binders that support batch listeners, a message
payload of `List<byte[]>` can be properly converted.
- In batch mode, handle
`public Function<List<Person>, Person> func()`
`public Function<List<List<Person>>, Person> func()`
`Function<Message<List<Person>>, Person> func()`
- Also use `ParameterizedType` as a conversion hint for `public Function<List<Person>, Person> func()`
when not in batch mode (json: `[{\"name\":\"bob\"},{\"name\":\"jill\"}]`). Previously, just the'
class was used without generic type information.
Move batchMode to ConsumerProperties.
Fix imports
Remove duplicate test from if test for message conversion.
When multiple binders are present in the classpath and not all of them are used,
there are some subtle details that the user needs to be aware. Addressing them
through docs by providing the details.
Resolves#1620Resolves#1624
- Polished RetryTemplate changes from the previous commit
- Rebased with 2.2.x branch
- Added tests
- Updated author tags with original committer's name
Resolves#1511Resolves#1588
Fixesspring-cloud/spring-cloud-stream#1569
When `inheritEnvironment = true` (default), some provided properties
(including `spring.main.sources`) are not populated into the target
binder's environment, since Spring Boot relies on the presence of
the `configurationProperties` properties source which is transferred
from the parent context
* Remove `configurationProperties` from the `binderEnvironment` before
starting binder's application context
* Ensure that `spring.main.sources` is applied for the binder's
application context in the `BinderFactoryConfigurationTests`
* Fix `GreenfieldFunctionEnableBindingTests` for random HTTP port since
`8080` is too generic and clashes with build environment
* Fix `StreamListenerAnnotatedMethodArgumentsTests` for `Locale.US`
for proper assertion against validation message
* Mention `spring.profiles.active` configuration property for the
binder specific environment
Fixesspring-cloud/spring-cloud-stream#1569
When `inheritEnvironment = true` (default), some provided properties
(including `spring.main.sources`) are not populated into the target
binder's environment, since Spring Boot relies on the presence of
the `configurationProperties` properties source which is transferred
from the parent context
* Remove `configurationProperties` from the `binderEnvironment` before
starting binder's application context
* Ensure that `spring.main.sources` is applied for the binder's
application context in the `BinderFactoryConfigurationTests`
* Fix `GreenfieldFunctionEnableBindingTests` for random HTTP port since
`8080` is too generic and clashes with build environment
* Fix `StreamListenerAnnotatedMethodArgumentsTests` for `Locale.US`
for proper assertion against validation message
* Mention `spring.profiles.active` configuration property for the
binder specific environment
Documented new Test Binder capabilities
Created initila version of migration guide
Added StreamRetryTemplate to migration guide
Updates doc with 2.1 updates
Resolves#1431Resolves#1524Resolves#1381