Refactor userTypeResolver construction into separate method.

This allows for easy overriding, for example in case you
wish to use a different implementation.

See #1297
This commit is contained in:
Ammar Khaku
2022-08-20 14:51:22 -07:00
committed by Mark Paluch
parent 72324562ff
commit af5d499c10

View File

@@ -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()));
}
}