Skip to content

Commit 49797b1

Browse files
committed
Polish "Add support for CustomConversions with Cassandra"
Closes gh-8534
1 parent 744a1ed commit 49797b1

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfiguration.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import org.springframework.data.cassandra.core.convert.MappingCassandraConverter;
4747
import org.springframework.data.cassandra.core.mapping.CassandraMappingContext;
4848
import org.springframework.data.cassandra.core.mapping.SimpleUserTypeResolver;
49-
import org.springframework.data.convert.CustomConversions;
5049
import org.springframework.util.StringUtils;
5150

5251
/**
@@ -82,7 +81,8 @@ public CassandraDataAutoConfiguration(BeanFactory beanFactory,
8281

8382
@Bean
8483
@ConditionalOnMissingBean
85-
public CassandraMappingContext cassandraMapping(CustomConversions conversions) throws ClassNotFoundException {
84+
public CassandraMappingContext cassandraMapping(
85+
CassandraCustomConversions conversions) throws ClassNotFoundException {
8686
CassandraMappingContext context = new CassandraMappingContext();
8787
List<String> packages = EntityScanPackages.get(this.beanFactory)
8888
.getPackageNames();
@@ -103,7 +103,7 @@ public CassandraMappingContext cassandraMapping(CustomConversions conversions) t
103103
@Bean
104104
@ConditionalOnMissingBean
105105
public CassandraConverter cassandraConverter(CassandraMappingContext mapping,
106-
CustomConversions conversions) {
106+
CassandraCustomConversions conversions) {
107107
MappingCassandraConverter converter = new MappingCassandraConverter(mapping);
108108
converter.setCustomConversions(conversions);
109109
return converter;
@@ -132,7 +132,7 @@ public CassandraTemplate cassandraTemplate(Session session,
132132

133133
@Bean
134134
@ConditionalOnMissingBean
135-
public CustomConversions cassandraCustomConversions() {
135+
public CassandraCustomConversions cassandraCustomConversions() {
136136
return new CassandraCustomConversions(Collections.emptyList());
137137
}
138138

spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/cassandra/CassandraDataAutoConfigurationTests.java

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package org.springframework.boot.autoconfigure.data.cassandra;
1818

19-
import java.util.Arrays;
19+
import java.util.Collections;
2020
import java.util.Set;
2121

2222
import com.datastax.driver.core.Session;
@@ -27,7 +27,6 @@
2727
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
2828
import org.springframework.boot.autoconfigure.data.cassandra.city.City;
2929
import org.springframework.boot.autoconfigure.domain.EntityScan;
30-
import org.springframework.boot.test.util.EnvironmentTestUtils;
3130
import org.springframework.boot.test.util.TestPropertyValues;
3231
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
3332
import org.springframework.context.annotation.Bean;
@@ -105,11 +104,25 @@ public void userTypeResolverShouldBeSet() throws Exception {
105104
.isInstanceOf(SimpleUserTypeResolver.class);
106105
}
107106

107+
@Test
108+
public void defaultConversions() {
109+
this.context = new AnnotationConfigApplicationContext();
110+
TestPropertyValues.of("spring.data.cassandra.keyspaceName:boot_test")
111+
.applyTo(this.context);
112+
this.context.register(TestConfiguration.class,
113+
PropertyPlaceholderAutoConfiguration.class,
114+
CassandraAutoConfiguration.class, CassandraDataAutoConfiguration.class);
115+
this.context.refresh();
116+
CassandraTemplate template = this.context.getBean(CassandraTemplate.class);
117+
assertThat(template.getConverter().getConversionService().canConvert(Person.class,
118+
String.class)).isFalse();
119+
}
120+
108121
@Test
109122
public void customConversions() {
110123
this.context = new AnnotationConfigApplicationContext();
111-
EnvironmentTestUtils.addEnvironment(this.context,
112-
"spring.data.cassandra.keyspaceName:boot_test");
124+
TestPropertyValues.of("spring.data.cassandra.keyspaceName:boot_test")
125+
.applyTo(this.context);
113126
this.context.register(CustomConversionConfig.class,
114127
TestConfiguration.class,
115128
PropertyPlaceholderAutoConfiguration.class,
@@ -148,8 +161,9 @@ static class EntityScanConfig {
148161
static class CustomConversionConfig {
149162

150163
@Bean
151-
public CassandraCustomConversions cassandraCustomConversions() {
152-
return new CassandraCustomConversions(Arrays.asList(new MyConverter()));
164+
public CassandraCustomConversions myCassandraCustomConversions() {
165+
return new CassandraCustomConversions(Collections.singletonList(
166+
new MyConverter()));
153167
}
154168

155169
}

0 commit comments

Comments
 (0)