Skip to content

Commit be43513

Browse files
nosanphilwebb
authored andcommitted
Fix Spring Data Cassandra auto-configure condition
Update `CassandraDataAutoConfiguration` do that it's only applied when a `Cluster` bean is found. Fixes gh-16971
1 parent ef09ee5 commit be43513

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2929
import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration;
3030
import org.springframework.boot.autoconfigure.cassandra.CassandraProperties;
31+
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
3132
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
3233
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
3334
import org.springframework.boot.autoconfigure.domain.EntityScanPackages;
@@ -59,6 +60,7 @@
5960
*/
6061
@Configuration
6162
@ConditionalOnClass({ Cluster.class, CassandraAdminOperations.class })
63+
@ConditionalOnBean(Cluster.class)
6264
@EnableConfigurationProperties(CassandraProperties.class)
6365
@AutoConfigureAfter(CassandraAutoConfiguration.class)
6466
public class CassandraDataAutoConfiguration {

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,15 @@ public void customConversions() {
105105

106106
}
107107

108+
@Test
109+
void clusterDoesNotExist() {
110+
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
111+
ctx.register(CassandraDataAutoConfiguration.class);
112+
ctx.refresh();
113+
this.context = ctx;
114+
assertThat(ctx.getBeansOfType(Session.class)).isEmpty();
115+
}
116+
108117
public void load(Class<?>... config) {
109118
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
110119
TestPropertyValues.of("spring.data.cassandra.keyspaceName:boot_test")

0 commit comments

Comments
 (0)