12 Commits

Author SHA1 Message Date
dependabot[bot]
8a172e8980 Bump org.springframework.boot in /samples/zip-split-rabbit-binder (#164)
Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.4.5 to 3.4.6.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.5...v3.4.6)

---
updated-dependencies:
- dependency-name: org.springframework.boot
  dependency-version: 3.4.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-25 08:48:31 -04:00
dependabot[bot]
aa74ea6b0e Bump org.springframework.boot in /samples/zip-split-rabbit-binder (#157)
Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.4.3 to 3.4.5.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.3...v3.4.5)

---
updated-dependencies:
- dependency-name: org.springframework.boot
  dependency-version: 3.4.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-28 11:29:33 -04:00
dependabot[bot]
364bd64059 Bump org.springframework.cloud:spring-cloud-dependencies (#153)
Bumps [org.springframework.cloud:spring-cloud-dependencies](https://github.com/spring-cloud/spring-cloud-release) from 2024.0.0 to 2024.0.1.
- [Release notes](https://github.com/spring-cloud/spring-cloud-release/releases)
- [Commits](https://github.com/spring-cloud/spring-cloud-release/compare/v2024.0.0...v2024.0.1)

---
updated-dependencies:
- dependency-name: org.springframework.cloud:spring-cloud-dependencies
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-23 07:37:27 -04:00
dependabot[bot]
114e0fa6ef Bump org.springframework.boot in /samples/zip-split-rabbit-binder
Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.4.2 to 3.4.3.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.2...v3.4.3)

---
updated-dependencies:
- dependency-name: org.springframework.boot
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-24 08:57:54 -05:00
Artem Bilan
c3759ad516 Use SFnC 5.1.0 in samples 2025-01-26 08:09:22 -05:00
dependabot[bot]
2358f9c67c Bump org.springframework.boot in /samples/zip-split-rabbit-binder (#135)
Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.4.1 to 3.4.2.
- [Release notes](https://github.com/spring-projects/spring-boot/releases)
- [Commits](https://github.com/spring-projects/spring-boot/compare/v3.4.1...v3.4.2)

---
updated-dependencies:
- dependency-name: org.springframework.boot
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-23 18:15:02 +00:00
Artem Bilan
3ebce8858f GH-107: Make Splitter Function as Flux-based
Fixes: https://github.com/spring-cloud/spring-functions-catalog/issues/107

When we have a composition like this:

```
spring.cloud.function.definition = fileSupplier|splitterFunction
```

Then final "function" signature is like this `Supplier<Flux<Message<List<Message<?>>>>>`.
And that is exactly what we don't expected from the splitter in the end of the composition.
While Spring Cloud Stream supports de-batching, it works for a `List` output only if function is bound by itself.
In case of composition we got just a `Supplier`.

* Rework `SplitterFunctionConfiguration` for `splitterFunction` from `Function<Message<?>, List<Message<?>>>`
to `Function<Flux<Message<?>>, Flux<Message<?>>>` signature to support every possible simple and composed bindings
in Spring Cloud Stream
* Rework `SplitterFunctionApplicationTests` for new expected `Function<Flux<Message<?>>, Flux<Message<?>>>` signature
* Rework `zip-split-rabbit-binder` sample to not use a `flattenFunction` workaround
and fully rely on whatever is new for the `splitterFunction`
* Fix `ZipSplitRabbitBinderApplicationTests` moving the `@RabbitListener` into a `@TestConfiguration`.
Apparently in a new Spring Boot version the test class is registered as a bean much later than normal application context startup.
Therefore, even if the `@RabbitListener` parsed and registered properly, the `RabbitAdmin` bean
has been already started to see our extra bean definition for the `@QueueBinding`

Changing signature for the splitterFunction to reactive types would make it working even with a Supplier composition.

Fix JDBC & MongoDB suppliers to deal with a new version of Splitter function

Fix Checkstyle violations

Use `IntegrationReactiveUtils.messageSourceToFlux()` API

The `IntegrationReactiveUtils.messageSourceToFlux()` provides convenient API to represent a `MessageSource`
as a `Flux` to poll this source.
The API has an error handling logic and delay when no data emitted by the source

* Remove `org.springframework.cloud` dependencies from the project
since we don't use `@PollableBean` anymore, which comes from the `spring-cloud-function-context`
* Simplify `JdbcSupplierConfiguration` and `MongodbSupplierConfiguration` code more: more injections to the respective bean method.
* Use `(__) ->` lambda syntax for unused argument
* Remove unused `ThreadLocalFluxSinkMessageChannel` internal class
* Update Copyrights of the classes in this change

Upgrade to Gradle `8.12`
2025-01-16 17:15:41 -05:00
Artem Bilan
6d192d8a57 Start version 5.1.0
* Upgrade to the latest dependencies
* Remove wrong JMS dependencies from the `spring-twitter-supplier`: there is really nothing to do with JMS
* Fix `CassandraTestContainer` to use new `CassandraContainer` class version: essentially, a deprecation of the previous one has led here
* Remove `apicurio` dependencies from the `spring-debezium-autoconfigure`.
We really don't need them for our logic and if there is a requirement in the target project, they can add such a dependency manually.
* Remove `commons-compress`, `avro` & `json` dependencies from the `spring-debezium-supplier`,
since they are just transitive dependencies for not any managed `apicurio` dependency
* Add explicit version for the `com.squareup.okhttp3:mockwebserver` since Spring Boot does not manage this dependency anymore
* Use Hazelcast `5.4.0` version since managed by Spring Boot `5.5.0` has a CP subsystem as a commercial offering only
* `@MockBean` to `@MockitoBean` in the `AbstractAwsS3ConsumerMockTests` since the first one is deprecated in Spring Boot, in favor of the second one
* Fix `ZeroMqConsumerConfiguration` to start `ZeroMqMessageHandler` from the `Flux` of function input
* Upgrade samples to the latest dependencies
2024-12-24 10:52:30 -05:00
dependabot[bot]
94f23233d5 Bump org.springframework.cloud.fn:spring-functions-catalog-bom (#127)
Bumps [org.springframework.cloud.fn:spring-functions-catalog-bom](https://github.com/spring-cloud/spring-functions-catalog) from 5.0.2-SNAPSHOT to 5.0.3-SNAPSHOT.
- [Release notes](https://github.com/spring-cloud/spring-functions-catalog/releases)
- [Commits](https://github.com/spring-cloud/spring-functions-catalog/commits)

---
updated-dependencies:
- dependency-name: org.springframework.cloud.fn:spring-functions-catalog-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-23 09:20:02 -05:00
dependabot[bot]
30c04b2946 Bump the development-dependencies group across 3 directories with 2 updates (#125)
Bumps the development-dependencies group with 2 updates in the / directory: [io.spring.dependency-management](https://github.com/spring-gradle-plugins/dependency-management-plugin) and com.github.spotbugs.
Bumps the development-dependencies group with 1 update in the /samples/time-spel-log directory: [io.spring.dependency-management](https://github.com/spring-gradle-plugins/dependency-management-plugin).
Bumps the development-dependencies group with 1 update in the /samples/zip-split-rabbit-binder directory: [io.spring.dependency-management](https://github.com/spring-gradle-plugins/dependency-management-plugin).


Updates `io.spring.dependency-management` from 1.1.6 to 1.1.7
- [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases)
- [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.1.6...v1.1.7)

Updates `com.github.spotbugs` from 6.0.26 to 6.0.27

Updates `io.spring.dependency-management` from 1.1.6 to 1.1.7
- [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases)
- [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.1.6...v1.1.7)

Updates `io.spring.dependency-management` from 1.1.6 to 1.1.7
- [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases)
- [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.1.6...v1.1.7)

---
updated-dependencies:
- dependency-name: io.spring.dependency-management
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: com.github.spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: io.spring.dependency-management
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
- dependency-name: io.spring.dependency-management
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: development-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-19 22:02:15 +00:00
dependabot[bot]
abae88d409 Bump org.springframework.cloud:spring-cloud-dependencies
Bumps [org.springframework.cloud:spring-cloud-dependencies](https://github.com/spring-cloud/spring-cloud-release) from 2023.0.3 to 2023.0.4.
- [Release notes](https://github.com/spring-cloud/spring-cloud-release/releases)
- [Commits](https://github.com/spring-cloud/spring-cloud-release/compare/v2023.0.3...v2023.0.4)

---
updated-dependencies:
- dependency-name: org.springframework.cloud:spring-cloud-dependencies
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-16 14:57:06 +00:00
Artem Bilan
0338922518 Add zip-split-rabbit-binder sample
More info in: https://stackoverflow.com/questions/79250487/is-there-any-way-to-build-an-sftpsupplier-splitter-batch-producer-with-spring

* Address PR reviews:

* Fix typos and language in README
* Fix new line in the end of `application.yml`
* Move `@Bean` for `RabbitMQContainer` as a regular `static` property on the class with a `@Container`
* Use `@Testcontainers(disabledWithoutDocker = true)`
* Move `@RabbitListener` method directly to test class
* In the end we don't need extra `@TestConfiguration` class at all
2024-12-09 15:32:06 -05:00