This commit adds `tail` support to the `spring-file-supplier`.
Additionally, move `FileMessageSource` specific beans into separate inner
`FileMessageSourceConfiguration` class for easier conditional config
Fixes: #3
* Remove `MessageChannel` beans whenever their really don't need to be exposed into the target application context.
Use local property definition instead in the configuration class
* Make Twitter `Consumer` configurations conditional on their required properties
to avoid auto-configuration for those bean which are not going to be used in the target application
Turns out the `DirectMessage` type is not compatible with JSON (anymore)
* Provide an internal `DirectMessageAdapter` and mark unsupported options with `@JsonIgnore`
* GH-5: Use `DebeziumMessageProducer` from Spring Integration
Fixes: #5
* Expose `enableEmptyPayload` and `headerNamesToMap` configuration properties instead of plain `copyHeaders`
* All the logic now is hidden in the `DebeziumMessageProducer`
* Clean up tests according to a new code base
* Fix warning for the deprecated Debezium properties.
Now only one `delete.tombstone.handling.mode` is needed
* Optimize the code flow for the `StepVerifier` via conversion pulled up to the `Flux`
* Apparently there is some race condition in the `EmbeddedEngine` around stop functionality,
so, add `debezium.embedded.shutdown.pause.before.interrupt.ms=500` instead of `5 minutes` by default
* Fix typo in the `DebeziumSupplierIntegrationTests`
* Fix `FileSupplierConfiguration` to use `toReactivePublisher(true)`
to defer a start of channel adapters until reactive subscription.
* Also use `IntegrationReactiveUtils.messageSourceToFlux()` API instead of manual Reactor API composition
* Remove `ownConnection` feature from RabbitMQ modules.
It does not bring too much value over Spring Boot config.
Plus no one else modules tries to mimic such a behavior.
So, fully rely on Spring Boot auto-configuration for RabbitMQ as well.
The `AbstractRemoteFileStreamingMessageSource.start()` does nothing, but state change.
Therefore, it is safe to call from whenever is convenient for us
Fixes: #2
* To avoid `@Lazy` and other possible injection problems
when an `IntegrationFlow` is not ready yet, provide a `@MessagingGateway(name = "sftpConsumer")`
explicitly for the `MessageConsumer` in the `SftpConsumerConfiguration`
* Make SFTP modules as auto-configuration
* Fix Checkstyle violations in those modules
* Fix `SyslogSupplierConfiguration` according to the `@AutoConfiguration` expectations
* Fix all the Checkstyle violations in the `spring-syslog-supplier`
* Fix all the Checkstyle violations for those modules
* Introduce a `MosquittoContainerTest` contract into the `spring-function-test-support`
and use it in the MQTT modules
* Fix READMEs for previously migrated modules to auto-configuration
* Fix all the Checkstyle violation in the effected modules
* Fix Twitter modules READMEs to reflect a nature of the auto-configuration
* Add (and mention in README) new `enabled` properties for various Twitter supplier configurations:
by default all of them would be started just by the presence in classpath
* Add `spring-` prefix to function names
Fixes: #9
This commit renames each sub-module in the common, consumer, function
and supplier groups with a prefix of `spring-`.
* Update README.adoc links to new prefixed names
* Add `com.github.spotbugs` plugin to avoid warnings about missed nullability annotations
* Make `TimeSupplierConfiguration` as an auto-configuration
* Add `io.debezium:debezium-bom` as the first one to let others override its deps versions
* Move `org.springframework.boot:spring-boot-dependencies` after `io.awspring.cloud:spring-cloud-aws-dependencies`
to override its deps versions (e.g. `jakarta.mail` `1.0.0` > `2.0.2`)
With SF 6.0 we don't support `--debug` for method argument names anymore.
We must use `@Qualifier` explicitly.
Otherwise, it might be resolved to something else what matches the expected type.