Skip to content

Commit 2da72ff

Browse files
committed
@ConditionalOnBean(Cluster.class) is not present on class CassandraDataAutoConfiguration.
1 parent 15bdc12 commit 2da72ff

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

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

Lines changed: 6 additions & 4 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(proxyBeanMethods = false)
6162
@ConditionalOnClass({ Cluster.class, CassandraAdminOperations.class })
63+
@ConditionalOnBean(Cluster.class)
6264
@EnableConfigurationProperties(CassandraProperties.class)
6365
@AutoConfigureAfter(CassandraAutoConfiguration.class)
6466
public class CassandraDataAutoConfiguration {
@@ -67,8 +69,8 @@ public class CassandraDataAutoConfiguration {
6769

6870
private final Cluster cluster;
6971

70-
public CassandraDataAutoConfiguration(BeanFactory beanFactory,
71-
CassandraProperties properties, Cluster cluster, Environment environment) {
72+
public CassandraDataAutoConfiguration(CassandraProperties properties,
73+
Cluster cluster) {
7274
this.properties = properties;
7375
this.cluster = cluster;
7476
}
@@ -107,7 +109,7 @@ public CassandraConverter cassandraConverter(CassandraMappingContext mapping,
107109
@Bean
108110
@ConditionalOnMissingBean(Session.class)
109111
public CassandraSessionFactoryBean cassandraSession(Environment environment,
110-
CassandraConverter converter) throws Exception {
112+
CassandraConverter converter) {
111113
CassandraSessionFactoryBean session = new CassandraSessionFactoryBean();
112114
session.setCluster(this.cluster);
113115
session.setConverter(converter);
@@ -121,7 +123,7 @@ public CassandraSessionFactoryBean cassandraSession(Environment environment,
121123
@Bean
122124
@ConditionalOnMissingBean
123125
public CassandraTemplate cassandraTemplate(Session session,
124-
CassandraConverter converter) throws Exception {
126+
CassandraConverter converter) {
125127
return new CassandraTemplate(session, converter);
126128
}
127129

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)