diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cassandra/CassandraHealthIndicator.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cassandra/CassandraHealthIndicator.java index bcaaae1bd8..4c89c8e266 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cassandra/CassandraHealthIndicator.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/cassandra/CassandraHealthIndicator.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,9 +16,10 @@ package org.springframework.boot.actuate.cassandra; +import com.datastax.driver.core.ConsistencyLevel; import com.datastax.driver.core.ResultSet; -import com.datastax.driver.core.querybuilder.QueryBuilder; -import com.datastax.driver.core.querybuilder.Select; +import com.datastax.driver.core.SimpleStatement; +import com.datastax.driver.core.Statement; import org.springframework.boot.actuate.health.AbstractHealthIndicator; import org.springframework.boot.actuate.health.Health; @@ -31,10 +32,14 @@ import org.springframework.util.Assert; * Cassandra data stores. * * @author Julien Dubois + * @author Alexandre Dutra * @since 2.0.0 */ public class CassandraHealthIndicator extends AbstractHealthIndicator { + private static final Statement SELECT = new SimpleStatement("SELECT release_version FROM system.local") + .setConsistencyLevel(ConsistencyLevel.LOCAL_ONE); + private CassandraOperations cassandraOperations; public CassandraHealthIndicator() { @@ -53,9 +58,8 @@ public class CassandraHealthIndicator extends AbstractHealthIndicator { @Override protected void doHealthCheck(Health.Builder builder) throws Exception { - Select select = QueryBuilder.select("release_version").from("system", "local"); - ResultSet results = this.cassandraOperations.getCqlOperations().queryForResultSet(select); - if (results.isExhausted()) { + ResultSet results = this.cassandraOperations.getCqlOperations().queryForResultSet(SELECT); + if (results.isFullyFetched()) { builder.up(); return; } diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/cassandra/CassandraHealthIndicatorTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/cassandra/CassandraHealthIndicatorTests.java index 61889d385a..03001bcfa8 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/cassandra/CassandraHealthIndicatorTests.java +++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/cassandra/CassandraHealthIndicatorTests.java @@ -18,7 +18,7 @@ package org.springframework.boot.actuate.cassandra; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; -import com.datastax.driver.core.querybuilder.Select; +import com.datastax.driver.core.Statement; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.health.Health; @@ -51,8 +51,8 @@ class CassandraHealthIndicatorTests { ResultSet resultSet = mock(ResultSet.class); CassandraHealthIndicator healthIndicator = new CassandraHealthIndicator(cassandraOperations); given(cassandraOperations.getCqlOperations()).willReturn(cqlOperations); - given(cqlOperations.queryForResultSet(any(Select.class))).willReturn(resultSet); - given(resultSet.isExhausted()).willReturn(true); + given(cqlOperations.queryForResultSet(any(Statement.class))).willReturn(resultSet); + given(resultSet.isFullyFetched()).willReturn(true); Health health = healthIndicator.health(); assertThat(health.getStatus()).isEqualTo(Status.UP); } @@ -65,8 +65,8 @@ class CassandraHealthIndicatorTests { Row row = mock(Row.class); CassandraHealthIndicator healthIndicator = new CassandraHealthIndicator(cassandraOperations); given(cassandraOperations.getCqlOperations()).willReturn(cqlOperations); - given(cqlOperations.queryForResultSet(any(Select.class))).willReturn(resultSet); - given(resultSet.isExhausted()).willReturn(false); + given(cqlOperations.queryForResultSet(any(Statement.class))).willReturn(resultSet); + given(resultSet.isFullyFetched()).willReturn(false); given(resultSet.one()).willReturn(row); String expectedVersion = "1.0.0"; given(row.getString(0)).willReturn(expectedVersion);