We now create a new conversion context to ensure that we use the correct property type to avoid type retention when mapping complex objects within a projection.
Closes#1240
CassandraTemplate and its asynchronous and reactive variants now define a createPreparedStatementHandler() template method to customize CQL preparation and binding.
Closes#1237
We now use Mono.expand(…) to recursively read paginated results. Using Mono.expand(…) avoids deep stack recursion and therefore doesn't lead to StackOverflowError.
Closes#1215
We now cache the outcome for column types, AnnotatedType lookuop by annotation and bypass the conversion service by considering primitive type wrappers in the assignability check.
Closes#1218
By reading a properties file from an external location, it is possible to inject a consistent set of properties from Spring Data Build. This also supports repeatable builds.
Closes#1214.
Remove lingering dockerfiles. Use custom docker image for Cassandra build and OpenJDK 17 image for artifact deployment.
Apply consistent formatting. Add missing since tag.
See #1170
Re-arrange spring dependency declarations.
Remove unnecessary javax.interceptor:javax.interceptor-api and javax.annotation:javax.annotation-api dependencies.
Declare jakarta.enterprise:jakarta.enterprise.cdi-api:3.0.0 dependency (commented out) in preparation for Jarkata EE 9 migration.
Add exclusion on the javax.inject:javax.inject dependency to the org.apache.cassandra:cassandra-all dependency.
Resolves#1170.
The Cassandra server using the Apache Cassandra API CassandraDaemon class in the SD Cassandra EmbeddedCassandraServerHelper class does not run by default on Java 17.
See #1170.
This property is used to get the desired Cassandra Testcotnainer at our supported Apache Cassandra version when running SD Cassandrta integration tests using Testcontainers (profile).
Refactor CassandraDelegate to resolve the Cassandra version property used in the Testcontainers Docker Image name.
Refactor EmbeddedCassandraServerHelper to guard against NPEs when resolving the RPC address (InetAddress) hostname.
Add logging to distinguish which method (Embedded or Testcontainers) to start the Cassandra server.
See #1170.
Projections are now fully supported from within the CassandraConverter that can materialize DTO and interface projections without using intermediate entities.
Closes: #1202