From af5d499c10f0f767c66e948a1cbc95a401b1ea21 Mon Sep 17 00:00:00 2001 From: Ammar Khaku Date: Sat, 20 Aug 2022 14:51:22 -0700 Subject: [PATCH] Refactor userTypeResolver construction into separate method. This allows for easy overriding, for example in case you wish to use a different implementation. See #1297 --- .../config/AbstractCassandraConfiguration.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java index 1fc740229..607cd4cf5 100644 --- a/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java +++ b/spring-data-cassandra/src/main/java/org/springframework/data/cassandra/config/AbstractCassandraConfiguration.java @@ -51,6 +51,7 @@ import com.datastax.oss.driver.api.core.CqlSession; * @author Matthew T. Adams * @author John Blum * @author Mark Paluch + * @author Ammar Khaku */ @Configuration @SuppressWarnings("unused") @@ -72,14 +73,13 @@ public abstract class AbstractCassandraConfiguration extends AbstractSessionConf CqlSession cqlSession = getRequiredSession(); - UserTypeResolver userTypeResolver = new SimpleUserTypeResolver(cqlSession, - CqlIdentifier.fromCql(getKeyspaceName())); + MappingCassandraConverter converter = new MappingCassandraConverter( requireBeanOfType(CassandraMappingContext.class)); converter.setCodecRegistry(cqlSession.getContext().getCodecRegistry()); - converter.setUserTypeResolver(userTypeResolver); + converter.setUserTypeResolver(userTypeResolver(cqlSession)); converter.setCustomConversions(requireBeanOfType(CassandraCustomConversions.class)); return converter; @@ -118,10 +118,9 @@ public abstract class AbstractCassandraConfiguration extends AbstractSessionConf CqlSession cqlSession = getRequiredSession(); - UserTypeResolver userTypeResolver = new SimpleUserTypeResolver(cqlSession, - CqlIdentifier.fromCql(getKeyspaceName())); - CassandraMappingContext mappingContext = new CassandraMappingContext(userTypeResolver, + + CassandraMappingContext mappingContext = new CassandraMappingContext(userTypeResolver(cqlSession), SimpleTupleTypeFactory.DEFAULT); CustomConversions customConversions = requireBeanOfType(CassandraCustomConversions.class); @@ -287,4 +286,8 @@ public abstract class AbstractCassandraConfiguration extends AbstractSessionConf protected ByteArrayResource scriptOf(String content) { return new ByteArrayResource(content.getBytes()); } + + protected UserTypeResolver userTypeResolver(CqlSession cqlSession) { + return new SimpleUserTypeResolver(cqlSession, CqlIdentifier.fromCql(getKeyspaceName())); + } }