From fffd27b9d1e023d366adecdf17b8a2db69c543b4 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, 7 insertions(+), 8 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 5a78eb7f9..0b65609dc 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 @@ -49,6 +49,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") @@ -71,14 +72,11 @@ 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; @@ -96,11 +94,8 @@ public abstract class AbstractCassandraConfiguration extends AbstractSessionConf CqlSession cqlSession = getRequiredSession(); - UserTypeResolver userTypeResolver = - new SimpleUserTypeResolver(cqlSession, CqlIdentifier.fromCql(getKeyspaceName())); - CassandraMappingContext mappingContext = - new CassandraMappingContext(userTypeResolver, SimpleTupleTypeFactory.DEFAULT); + new CassandraMappingContext(userTypeResolver(cqlSession), SimpleTupleTypeFactory.DEFAULT); CustomConversions customConversions = requireBeanOfType(CassandraCustomConversions.class); @@ -260,4 +255,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())); + } }