Commit Graph

361 Commits

Author SHA1 Message Date
Corneil du Plessis
a54d602d5c [Update] Spring Boot to 3.1.0 2023-06-08 18:47:25 +02:00
Artem Bilan
d30252a66b 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
d5b90c508c Polish "GH-275: Mention ComponentCustomizer in READMEs"
- Swap out `mqtt-consumer` and `mongodb-supplier`snippets
2023-06-05 22:21:01 -04:00
abilan
5ecec94121 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
6a34291c5a 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
b8931f8399 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
745d270dde 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
e52419e35b Next development version 4.0.0-SNAPSHOT 2023-05-25 11:30:37 +00:00
GitHub Actions Bot
17288d84b8 Release 4.0.0-M2 2023-05-25 11:30:19 +00:00
Christian Tzolov
bd7be7dcf3 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
6a63502da2 Remove spring-cloud-sleuth (#454) 2023-05-12 13:49:02 -05:00
Corneil du Plessis
17dc03b0ee Remove class from DebeziumFormat 2023-05-04 16:19:27 +02:00
Corneil du Plessis
3b3d433d38 Fix repositories 2023-05-04 16:19:16 +02:00
abilan
53d122fa15 Disable DefaultAggregatorTests 2023-05-02 17:12:36 -04:00
Christian Tzolov
648d81a8c6 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
a95bfaf10d Revert deploy-plugin to 2.8.2 for stream-applications-descriptor 2023-04-21 11:07:43 +02:00
Chris Bono
afe608a0fe 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
9adb9c9256 Fix header filter test. Improve aggregator-filter test configuration. 2023-04-06 12:21:08 +02:00
Corneil du Plessis
bd5bf620be Added header-filter function and processor. 2023-04-05 18:02:33 +02:00
Chris Bono
86a5746f39 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
b2b3f335df Fix checkstyle errors. 2023-02-23 11:09:27 +02:00
abilan
f65f0201f6 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
af6cd2f188 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
c02126911a Added logging to aggregator. 2023-02-14 16:59:41 +02:00
Corneil du Plessis
f0aed8d40a Remove assertion for list 2023-02-09 12:29:59 +02:00
Corneil du Plessis
f01e6383e5 Remove assertion for list 2023-02-09 11:39:33 +02:00
Corneil du Plessis
202de585ad Increase timeout for DefaultAggregatorTests 2023-02-07 21:40:28 +02:00
Corneil du Plessis
5b6ded7358 Added xmpp to the documentation.
Fixing remaining versions.

Updates #429
2023-02-02 18:51:01 +02:00
Corneil du Plessis
36f9f60fd7 Improve WebSocket stability. 2023-01-17 12:58:43 +02:00
Corneil du Plessis
c6694a9771 Added <protocArtifact>com.google.protobuf:protoc:${protobuf.version}</protocArtifact> to protoc-jar-maven-plugin in object-detection-function. 2023-01-17 11:25:55 +02:00
Corneil du Plessis
f196ae389b Fix checkstyle issue 2023-01-13 16:16:00 +02:00
Corneil du Plessis
41b626a632 Added GreenMail.
Update all tests for mail-supplier and mail-sink.
2023-01-12 16:39:53 +02:00
Corneil du Plessis
97b5906478 Fix checkstyle errors. 2023-01-12 11:05:43 +02:00
Corneil du Plessis
798c8a4361 Fix object-detection dependencies and cleanup samples. 2023-01-12 10:50:28 +02:00
Chris Bono
019cfcd932 GH-327: Use TestSocketUtils from spring-test (#420)
Fixes https://github.com/spring-cloud/stream-applications/issues/327

- Delete local TSU temporary implementations
- Replace local TSU w/ spring-test TSU
2023-01-11 11:33:31 -05:00
Corneil du Plessis
b5c9652946 Upodated aggregator RedisMessageStoreAggregatorTests to use RedisTestContainerSupport. 2023-01-11 16:20:14 +02:00
Corneil du Plessis
27a04dc1ae Fix } else 2023-01-09 12:59:33 +02:00
Corneil du Plessis
50bc4d3ad8 Added TODOs update versions. 2023-01-06 16:49:14 +02:00
Corneil du Plessis
78c2859e26 Update test-binder dependency.
Added elasticsearch-x-content.
2022-12-01 15:17:44 +02:00
Corneil du Plessis
ffaafa943b [SB3] Update startup timeouts and retries for containers. 2022-11-25 15:36:10 +02:00
Corneil du Plessis
1459bfabd9 [SB3] Update Elasticsearch Client. Update Boot and Spring versions. Improve Rabbit listener (#416) 2022-11-25 11:51:53 +02:00
Corneil du Plessis
f44dc56f50 [GitHub Actions] Tune thread count for Maven and surefire plugin forks. Increase runners with 10% more than requested. 2022-11-17 21:53:41 +02:00
Corneil du Plessis
a852b4da9f [SB3] Resolve race conditions. 2022-11-17 16:39:50 +02:00
Corneil du Plessis
751d130b09 [SB3] Change from doHandshake to execute. 2022-11-17 16:16:04 +02:00
Corneil du Plessis
c6b4ad3661 [SB3] Fix tests for changes in SB3. 2022-11-17 16:11:36 +02:00
Corneil du Plessis
46f807a55d [SB3] Fix tests for changes in SB3. 2022-11-17 14:41:25 +02:00
Corneil du Plessis
9a1f024d72 [SB3] Fix tests for changes in SB3. 2022-11-17 14:16:18 +02:00
Corneil du Plessis
b168cb9828 [SB3] Fix tests for changes in SB3. 2022-11-17 13:11:50 +02:00
abilan
1318cbde93 Fix Cassandra init script execution
The script file may have several DDL expression to execute.
They probably have to be called one-by-one as they are declared.
For example our `init-db.cql` has DDL to delete table and the next to create.

* Fix `CassandraAppClusterConfiguration.keyspaceInitializer()`
to use a `Flux.concatMap()` instead of `flatMap()` to ensure sequential
items processing in the order they appear upstream
2022-11-15 11:50:06 -05:00
Chris Bono
220b03b9aa Remove all remnants of Geode (#414) 2022-11-11 16:20:33 -06:00