Files
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
..
2024-12-24 10:52:30 -05:00

= Cassandra Consumer

This module provides a Cassandra Consumer that can be reused and composed in other applications.
Internally it uses the `CassandraMessageHandler` from Spring Integration.
`CassandraConsumerFunction` is implemented as a `java.util.function.Function`.

== Beans for injection

The `CassnadraConsumerConfiguration` auto-configuration provides the following beans:

`cassandraConsumerFunction`

You can use `cassandraConsumerFunction` as a qualifier when injecting.

Type for injection: `Function<Object, Mono<? extends WriteResult>>`

You have to subscribe to the returned `Mono` to trigger a communication with Cassandra.
Or use `Consumer<Object> cassandraConsumer` instead which ignores the result and performs just `Mono.block()` before returning.

== Configuration Options

All configuration properties are prefixed with `cassandra.consumer` and `cassandra.cluster`.

For more information on the various options available, please see link:src/main/java/org/springframework/cloud/fn/consumer/cassandra/CassandraConsumerProperties.java[CassandraConsumerProperties].
See link:src/main/java/org/springframework/cloud/fn/consumer/cassandra/cluster/CassandraClusterProperties.java[this] also.

== Tests

See this link:src/test/java/org/springframework/cloud/fn/consumer/cassandra[test suite] for the various ways, this consumer is used.

== Other usage

See this https://github.com/spring-cloud/stream-applications/blob/main/applications/sink/cassandra-sink/README.adoc[README] where this consumer is used to create a Spring Cloud Stream application where it makes a Cassandra sink.