Skip to content

Commit aaecdfb

Browse files
committed
Deprecate Cassandra properties that require a default constructor
Closes gh-14473
1 parent 068040e commit aaecdfb

File tree

4 files changed

+14
-3
lines changed

4 files changed

+14
-3
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ public CassandraAutoConfiguration(CassandraProperties properties,
6060

6161
@Bean
6262
@ConditionalOnMissingBean
63+
@SuppressWarnings("deprecation")
6364
public Cluster cassandraCluster() {
6465
PropertyMapper map = PropertyMapper.get();
6566
CassandraProperties properties = this.properties;

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import com.datastax.driver.core.policies.RetryPolicy;
3232

3333
import org.springframework.boot.context.properties.ConfigurationProperties;
34+
import org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
3435
import org.springframework.boot.convert.DurationUnit;
3536

3637
/**
@@ -188,10 +189,13 @@ public void setCompression(Compression compression) {
188189
this.compression = compression;
189190
}
190191

192+
@DeprecatedConfigurationProperty(reason = "Implement a ClusterBuilderCustomizer bean instead.")
193+
@Deprecated
191194
public Class<? extends LoadBalancingPolicy> getLoadBalancingPolicy() {
192195
return this.loadBalancingPolicy;
193196
}
194197

198+
@Deprecated
195199
public void setLoadBalancingPolicy(
196200
Class<? extends LoadBalancingPolicy> loadBalancingPolicy) {
197201
this.loadBalancingPolicy = loadBalancingPolicy;
@@ -221,19 +225,25 @@ public void setFetchSize(int fetchSize) {
221225
this.fetchSize = fetchSize;
222226
}
223227

228+
@DeprecatedConfigurationProperty(reason = "Implement a ClusterBuilderCustomizer bean instead.")
229+
@Deprecated
224230
public Class<? extends ReconnectionPolicy> getReconnectionPolicy() {
225231
return this.reconnectionPolicy;
226232
}
227233

234+
@Deprecated
228235
public void setReconnectionPolicy(
229236
Class<? extends ReconnectionPolicy> reconnectionPolicy) {
230237
this.reconnectionPolicy = reconnectionPolicy;
231238
}
232239

240+
@DeprecatedConfigurationProperty(reason = "Implement a ClusterBuilderCustomizer bean instead.")
241+
@Deprecated
233242
public Class<? extends RetryPolicy> getRetryPolicy() {
234243
return this.retryPolicy;
235244
}
236245

246+
@Deprecated
237247
public void setRetryPolicy(Class<? extends RetryPolicy> retryPolicy) {
238248
this.retryPolicy = retryPolicy;
239249
}

spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -635,17 +635,14 @@ content into your application. Rather, pick only the properties that you need.
635635
spring.data.cassandra.contact-points=localhost # Cluster node addresses.
636636
spring.data.cassandra.fetch-size= # Queries default fetch size.
637637
spring.data.cassandra.keyspace-name= # Keyspace name to use.
638-
spring.data.cassandra.load-balancing-policy= # Class name of the load balancing policy. The class must have a default constructor.
639638
spring.data.cassandra.port= # Port of the Cassandra server.
640639
spring.data.cassandra.password= # Login password of the server.
641640
spring.data.cassandra.pool.heartbeat-interval=30s # Heartbeat interval after which a message is sent on an idle connection to make sure it's still alive. If a duration suffix is not specified, seconds will be used.
642641
spring.data.cassandra.pool.idle-timeout=120s # Idle timeout before an idle connection is removed. If a duration suffix is not specified, seconds will be used.
643642
spring.data.cassandra.pool.max-queue-size=256 # Maximum number of requests that get queued if no connection is available.
644643
spring.data.cassandra.pool.pool-timeout=5000ms # Pool timeout when trying to acquire a connection from a host's pool.
645644
spring.data.cassandra.read-timeout= # Socket option: read time out.
646-
spring.data.cassandra.reconnection-policy= # Class name of the reconnection policy. The class must have a default constructor.
647645
spring.data.cassandra.repositories.type=auto # Type of Cassandra repositories to enable.
648-
spring.data.cassandra.retry-policy= # Class name of the retry policy. The class must have a default constructor.
649646
spring.data.cassandra.serial-consistency-level= # Queries serial consistency level.
650647
spring.data.cassandra.schema-action=none # Schema action to take at startup.
651648
spring.data.cassandra.ssl=false # Enable SSL support.

spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4578,6 +4578,9 @@ used to customize the connection. Generally, you provide `keyspace-name` and
45784578
spring.data.cassandra.contact-points=cassandrahost1,cassandrahost2
45794579
----
45804580

4581+
You can also register an arbitrary number of beans that implement
4582+
`ClusterBuilderCustomizer` for more advanced customizations.
4583+
45814584
The following code listing shows how to inject a Cassandra bean:
45824585

45834586
[source,java,indent=0]

0 commit comments

Comments
 (0)