Commit Graph

383 Commits

Author SHA1 Message Date
Artem Bilan
46dc4d0dd5 GH-500: Workaround for non-serializable header (#503)
Fixes https://github.com/spring-cloud/stream-applications/issues/500

When `listeners` are provided for `DefaultKafkaConsumerFactory`,
the target `KafkaConsumer` instance is proxied.
The `java.lang.reflect.Proxy` is `Serializable`,
but the value it is wrapping is not.
When the `MessageHeaders` is serialized (e.g. into persistent `MessageStore`),
it checks for `Serializable` type only on top-level object of the header.
Therefore, the `Proxy` is passing condition, but eventually we fail
with `NotSerializableException`, since the proxied object is not like that

* Remove `kafka_consumer` from a message before it reaches an aggregator
with its logic to serialize message into the store

This is a workaround until Spring for Apache Kafka is released
with the fix: https://github.com/spring-projects/spring-kafka/pull/2822
2023-09-22 15:02:02 -05:00
Soby Chacko
7a30b39211 Address deprecation warnings
Remove the usage of deprecated `IntegrationFlows` in favor of `IntegrationFlow`
2023-09-22 10:05:23 -04:00
sjgleam
eccdf79a7b Fix typo for link in SFTP Consumer README 2023-09-15 10:46:28 -04:00
Christian Tzolov
c905bf59e9 Upgrade debezium to 2.3.3.Final 2023-09-05 13:31:32 -04:00
GitHub Actions Bot
33f92ab047 Next development version 4.0.0-SNAPSHOT / 2022.0.0-SNAPSHOT 2023-07-21 12:40:45 +00:00
GitHub Actions Bot
99bd5982c9 Release 4.0.0-RC2 / 2022.0.0-RC2 2023-07-21 12:40:08 +00:00
GitHub Actions Bot
5f15796c8a Next development version 4.0.0-SNAPSHOT / 2022.0.0-SNAPSHOT 2023-07-20 14:56:01 +00:00
GitHub Actions Bot
f109933fda Release 4.0.0-RC2 / 2022.0.0-RC2 2023-07-20 14:55:34 +00:00
Artem Bilan
f4731801c4 Upgrade to AWS SDK v2
* Upgrade to Spring Integration AWS `3.0.1`
* Upgrade to Spring Cloud AWS `3.0.1`
* Use `spring-cloud-aws-dependencies` BOM to manage Spring Cloud AWS deps, as well as AWS SDK
* Remove `AmazonS3Properties` in favor of similar properties in the Spring Cloud AWS auto-configuration
* Remove `CompatibleStorageAmazonS3Configuration` in favor of its code migration to the single `AmazonS3Configuration`
* Fix `supplier`, `consumer`, `source` and `sink` for S3 to use API and programing model from the mentioned upgrades
* Add extra `dataflow-configuration-metadata` entries for the mentioned properties from the Spring Cloud AWS auto-configuration
* Regenerate README for `s3-source` and `s3-sink`
* Fix `metadata-store-common` to use the latest Spring Integration AWS for DynamoDB store impl

* * Fix `AmazonS3ConfigurationTests` for missed `AwsAutoConfiguration`
in an `ApplicationContextRunner` setup

* * Remove unused import in the `MetadataStoreAutoConfigurationTests`

* * Remove unused import in the `AbstractAwsS3ConsumerMockTests`
2023-07-19 09:36:09 -04:00
Corneil du Plessis
3ee44503de Update Spring versions. 2023-07-12 12:59:11 +02:00
Christian Tzolov
f6c336e265 Upgrade Debezium to 2.3.0.Final
* address some review comments

* minor pom improvements

* undo Debezium BOM
2023-06-27 12:58:27 -04:00
Corneil du Plessis
706c658d37 Limits tests to single thread 2023-06-19 13:26:13 +02:00
GitHub Actions Bot
f65cb72e0c Next development version 4.0.0-SNAPSHOT 2023-06-14 04:47:46 +00:00
GitHub Actions Bot
354c82a114 Release 4.0.0-RC1 2023-06-14 04:47:29 +00:00
Christian Tzolov
a17b44805f Update Debezium to 2.3.0.CR1 (#480) 2023-06-13 17:12:47 -05:00
Artem Bilan
a841beba15 GH-475: Add some missed nested props for apps (#476)
Fixes https://github.com/spring-cloud/stream-applications/issues/475

* Fix JDBC props for limited listed number of them
2023-06-12 23:35:10 -05:00
Artem Bilan
546eb0b2c9 GH-265: Add Kafka Supplier & Source (#474)
* Also add support for nested config props for `kafka-sink`

Fixes #265
2023-06-12 14:23:06 -05:00
abilan
7dc4d4a3f5 Fix mail apps for Spring Boot 3.1 2023-06-09 10:02:34 +02:00
Corneil du Plessis
d29c5887ac Polish Mongo supplier. 2023-06-08 23:56:57 +02:00
Corneil du Plessis
ee8738e838 Restore change for Mongo Tests. 2023-06-08 23:56:57 +02:00
Corneil du Plessis
7fe1d6b7da [CI] Fix test support 2023-06-08 23:56:48 +02:00
Corneil du Plessis
92871088d4 [Revert] Spring Boot to 3.0.7 2023-06-08 18:56:41 +02:00
Corneil du Plessis
f99016592f [Update] Spring Boot to 3.1.0 2023-06-08 18:47:25 +02:00
Artem Bilan
0a0223a6cc GH-265: Add Kafka Publisher and Sink (#469)
* GH-265: Add Kafka Consumer and Sink

Fixes https://github.com/spring-cloud/stream-applications/issues/265

* Make `kafkaPublisher` based on the Spring for Apache Kafka auto-configuration
and Spring Integration channel adapter, essentially `KafkaProducerMessageHandler`
* Make this `KafkaPublisherConfiguration` as an auto-configuration by itself.
* Expose those simple properties required by the `KafkaProducerMessageHandlerSpec`
* Add `kafka-sink` module based on the `kafkaPublisher`
* Add `kafka-sink` into apps metadata properties
2023-06-07 21:01:45 -05:00
Chris Bono
3fed48902f Polish "GH-275: Mention ComponentCustomizer in READMEs"
- Swap out `mqtt-consumer` and `mongodb-supplier`snippets
2023-06-05 22:21:01 -04:00
abilan
35a37fac5a GH-275: Mention ComponentCustomizer in READMEs
Fixes https://github.com/spring-cloud/stream-applications/issues/275

Many functions make use of `ComponentCustomizer` ot let end-user
to provide any custom configuration for target component used by the function.
First of all for use-case which are not covered by standard configuration
properties and secondly for those options which cannot be represented
as a configuration option.

* Add a sentence to READMEs of those functions which make use of `ComponentCustomizer`
with an expected generic argument type
* Add README into `rabbit-supplier` where it is fully missed at the moment
2023-06-05 22:21:01 -04:00
Christian Tzolov
11be59afd1 Move Debezium builder into standalone function common project (#463)
- Move the `DebeziumEngineBuilderAutoConfiguration` and META-INF configurations to new function project: debezium-autoconfigure.
 - Introduce the `EmbeddedEngineExecutorService` helper class for help DebezuimEngine implementations.
 - Move the relevant tests from debezium-supplier to the debeizum-autoconfigure.
 - Add detailed README documentation.
 - Adjust the debeizum-supplier and debezium-source configurations.
 - Clean the related tests.

 Resolves #462


---------

Co-authored-by: Artem Bilan <abilan@vmware.com>
2023-06-04 10:58:12 -05:00
Christian Tzolov
898938dd55 Update Debezium version and add mssql IT (#460)
* Update Debezium version from 2.2.0.Final to 2.2.1.Final
* Add Debezium mssql integration test
2023-05-31 12:17:22 -05:00
Artem Bilan
99d2525b3b GH-441: Add JsonBytesToMap function (#461)
Add `JsonBytesToMap` function to allow conversion between byte[] and JSON Map.

Fixes https://github.com/spring-cloud/stream-applications/issues/441

* Introduce a `JsonBytesToMap` as a part of a `payload-converter-function` module
which is auto-discovered by Spring Cloud Function scanning algorithm - the `functions` package.
* Add a `payload-converter-function` as dependency into an `aggregator-function`
* Compose `jsonBytesToMap|aggregatorFunction` for the `aggregator-processor`
* Verify a `JsonBytesToMap` function in action with an `AggregatorProcessorTests`
* Mentioned such a payload conversion in the `aggregator-processor` README
2023-05-30 18:25:27 -05:00
GitHub Actions Bot
bdc100a6c1 Next development version 4.0.0-SNAPSHOT 2023-05-25 11:30:37 +00:00
GitHub Actions Bot
251e1fb998 Release 4.0.0-M2 2023-05-25 11:30:19 +00:00
Christian Tzolov
7f33eabb84 Factor out the Debezium Engine Builder auto-configuration (#459)
* Factor out the Debezium Engine Builder auto-configuration

 - Rename DebeziumEngineAutoConfiguration into DebeziumEngineBuilderAutoConfiguration.
 - Make the DebeziumEngineBuilderAutoConfiguration auto-create a DebeizumEngine.Builder instance.
 - Move the DebeizumEngine bean creation to the DebeziumReactiveConsumerConfiguration.
 - Make DebeziumEngineBuilderAutoConfiguration conditional on Debeizum connecgtor on the class path and debezium.properties.connector.class property set.
 - Minor improvment on the serialization format class resolution.
 - Add support for debezium header serialization format, required for the change event headers to work.

 Resolves #458
2023-05-24 16:03:18 -05:00
Chris Bono
5fbd3c791b Remove spring-cloud-sleuth (#454) 2023-05-12 13:49:02 -05:00
Corneil du Plessis
0266f5be29 Remove class from DebeziumFormat 2023-05-04 16:19:27 +02:00
Corneil du Plessis
bafa7b2133 Fix repositories 2023-05-04 16:19:16 +02:00
abilan
75fcc55b25 Disable DefaultAggregatorTests 2023-05-02 17:12:36 -04:00
Christian Tzolov
6cf66ec779 Refactor CDC Debezium Source
- Add AVRO format support. Defaults to JSON
 - Remove the Metadata repo configuration.
 - Remove the Spring property sort-cuts. Only the native Debezium properties are used.
 - change the native properties prefix from `cdc.config to cdc.debezium`.
 - Removes the need to fork and modify the Debezium engine code.
 - Add binding name strategy.

Remove old CDC projects and replace with the new implementation
Remove duplicate pom properties
remove non existing pom module
Rename `cdc-debezium-supplier/source` to `debezium-supplier/source`
streamline naming and tests
streamline supplier tests
test streamline. Github workflow
Fix Debezium engine generics mess
Break `DebeziumConfiguration` into engine auto-config and consumer configuration
add initial reactive consumer impl.
Splits Debezium into a pure supplier and a streaming source

  - Remove any SCS related dependencies from the supplier.
  - Supplier uses Sinks.Many.

complete the supplier vs source separation
Improve Debezium Egine auto-conf

 - Provide configuration hooks for OffsetCommitPolicy, ConnectorCallback,
   CompletionCallback and Clock with default implementations.
 - Remove obsolete code.

minor improvements
Rename cdc property prefix to `debezium` and `cdc.debezium` to `debezium.inner`
remove obsolete `StreamBridge` tests
address reviews. improve testing
Supplier tests. Rename `inner` to `properties`.
Streamline the README. Minor improvements
streamline supplier tests
final fixes
2023-05-02 16:07:28 -04:00
Corneil du Plessis
85f1629fee Revert deploy-plugin to 2.8.2 for stream-applications-descriptor 2023-04-21 11:07:43 +02:00
Chris Bono
d61bb6db2b Fix ElasticsearchSink index name header (#446)
- Use `Consumer<Message<?>>` on IntegrationFlow
  rather than `Consumer`

Fixes #440
2023-04-11 15:50:59 -05:00
Corneil du Plessis
b0b3f14992 Fix header filter test. Improve aggregator-filter test configuration. 2023-04-06 12:21:08 +02:00
Corneil du Plessis
2b66ea3bff Added header-filter function and processor. 2023-04-05 18:02:33 +02:00
Chris Bono
92dc5b1047 Clarify sftp-supplier docs
* Highlight the `ref` mode invalid when streaming
* Use properties rather than shell options in docs

See https://github.com/spring-cloud/spring-cloud-dataflow/issues/5225
2023-02-23 09:10:17 -05:00
Corneil du Plessis
8c07e87309 Fix checkstyle errors. 2023-02-23 11:09:27 +02:00
abilan
f6939fcc25 GH-431: Support sub-dirs in S3 Source
Fixes https://github.com/spring-cloud/stream-applications/issues/431

* Use `WatchService` for local file `MessageSource` in `AwsS3SupplierConfiguration`
for `S3InboundFileSynchronizingMessageSource`.
This way we are able to scan sub-dirs in the local file store and skip those
sub-dirs as entities.

The `S3InboundFileSynchronizingMessageSource` is able to properly create a local sub-dir
according to the complex key of S3 object, for example if we have a remove entry as `myDir/myFile.txt`,
so in the `/local` dir it will be stored as `/local/myDir/myFile.txt`.
The mentioned `WatchService` can react to entries of entire file tree.
2023-02-23 10:37:46 +02:00
Corneil du Plessis
8e4c20dc77 GH-430: Change Filter function to non-reactive
Fixes https://github.com/spring-cloud/stream-applications/issues/430

Fix greenmail exclusion.
Added -X for github.debug
2023-02-14 11:23:31 -05:00
Corneil du Plessis
d29546c9bd Added logging to aggregator. 2023-02-14 16:59:41 +02:00
Corneil du Plessis
49736da55e Remove assertion for list 2023-02-09 12:29:59 +02:00
Corneil du Plessis
3bf8656c8f Remove assertion for list 2023-02-09 11:39:33 +02:00
Corneil du Plessis
3a0479a3ad Increase timeout for DefaultAggregatorTests 2023-02-07 21:40:28 +02:00
Corneil du Plessis
e9d8fb0c31 Added xmpp to the documentation.
Fixing remaining versions.

Updates #429
2023-02-02 18:51:01 +02:00