The `aggregatorFunction` has a flaw subscribing and emitting
data from a source `Flux` too early: from a `doOnSubscribe()`
callback which is really called *before* the real subscription is
registered in the target `Publisher`
Change the logic to the `doOnRequest()` which happens already
after subscription is registered in the `Publisher`
**Cherry-pick to `2020.0.x`**
Redesigning suppliers that use reactive output channel name as
the literal "output" explicitly, as this cuases some conflicts
with the output channel name usage in Spring Cloud Stream.
The fix is done either by simply renaming the channel name
or by avoid using it directly, but delegate its use through the SI Java DSL.
Resolves https://github.com/spring-cloud/stream-applications/issues/160
New properties for controlling the batch size and the timeout for a message group have been added, consistently with the jdbc-consumer implementation.
Added support for per message index override via INDEX_NAME header.
Overriding behavior of message headers mentioned in properties javadoc.
Improved debug log messages.
Copyright and authors update.
README
Fixes https://github.com/spring-cloud/stream-applications/issues/156
The `MessageSource.receive()` may produce `null`:
The `MessageSourceMutator` impl must honor such an input
* Add `MonoProcessor<Boolean> subscriptionBarrier` to delay
subscription to the source `Flux` until subscription happens
to the supplier's flux.
This way we don't have unexpected interaction with the source when
there are regular endpoints in the flow in between
Use spring test data geode in the geode integration tests
test to fork a separate geode process, instead of running
a geode server in a docker container.
STDG is faster than launching Geode through gfsh inside of a container.
- It doesn't run in docker
- It doesn't start management components necessary for gfsh
- It doesn't start extra gfsh shell processes
Removing the GeodeContainer test utility
Exclude `IpHeaders.LOCAL_ADDRESS` from TCP source output as it
causes issues with message conversion downstream.
Update SCSt/Spring-Cloud to the latest snapshots.
* Refactor `TcpSupplierConfiguration` for better readability and
current state of requirements for Spring libraries configuration
Fixes https://github.com/spring-cloud/stream-applications/issues/151
The `RabbitSupplierConfiguration` comes with the `output` bean definition which
clashes with the `output` binding for Spring Cloud Stream.
The last one doesn't register the binding bean and leave the rest of the logic
to deal with existing bean when we resolve it by the `output` name.
* Rework the logic of the `RabbitSupplierConfiguration` to avoid an extra bean
in between and the binding in Spring Cloud Stream do it job
Fixes https://github.com/spring-cloud/stream-applications/issues/154
The Binder conversion mechanism is not aware about a `MediaType.APPLICATION_FORM_URLENCODED`
and does not know how to convert the `MultiValueMap` with such a content-type
* Change the Http-Supplier to replace a `MediaType.APPLICATION_FORM_URLENCODED`
content-type header to the `MediaType.APPLICATION_JSON` for the proper
JSON serialization for the `MultiValueMap` on the binder level before sending to
the output destination
* Fix MongoDb driver problem.
Probably we need to think about upgrading Debezium support to the latest
version, so its MongoDb connector is based on the latest Mongo Driver
which already is pulled by Spring Boot
* Use `debezium/example-mysql:latest` image in the `CdcBootStarterIntegrationTest`
to avoid failing when some transitive dependency does not exist any more
Fixes https://github.com/spring-cloud/stream-applications/issues/146
The `SftpRegexPatternFileListFilter` is used for the `filenamePattern` option, too.
It seems like a copy/paste artefact
* Change `filenamePattern`-based configuration for the `SftpSimplePatternFileListFilter`
* Fix `SftpSupplierApplicationTests` for multi-OS compatibility
- Fix cdc_key header string wrapping issue that causes problems with the spring.cloud.stream.kafka.default.producer.messageKeyExpression.
- Rename Flattering property to the correct Flattening.
- Remove wrong dependencies.