Skip to content

Commit d12e42e

Browse files
committed
Polish
Closes gh-15211
1 parent 0a4ba49 commit d12e42e

File tree

4 files changed

+24
-13
lines changed

4 files changed

+24
-13
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,11 @@
264264
<artifactId>jetty-server</artifactId>
265265
<optional>true</optional>
266266
</dependency>
267+
<dependency>
268+
<groupId>org.elasticsearch</groupId>
269+
<artifactId>elasticsearch</artifactId>
270+
<optional>true</optional>
271+
</dependency>
267272
<dependency>
268273
<groupId>org.elasticsearch.client</groupId>
269274
<artifactId>elasticsearch-rest-client</artifactId>

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/elasticsearch/ElasticSearchRestHealthIndicatorAutoConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
* {@link ElasticsearchRestHealthIndicator} using the {@link RestClient}.
4141
*
4242
* @author Artsiom Yudovin
43-
* @since 2.1.0
43+
* @since 2.1.1
4444
*/
4545

4646
@Configuration

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ org.springframework.boot.actuate.autoconfigure.couchbase.CouchbaseHealthIndicato
1515
org.springframework.boot.actuate.autoconfigure.couchbase.CouchbaseReactiveHealthIndicatorAutoConfiguration,\
1616
org.springframework.boot.actuate.autoconfigure.elasticsearch.ElasticSearchClientHealthIndicatorAutoConfiguration,\
1717
org.springframework.boot.actuate.autoconfigure.elasticsearch.ElasticSearchJestHealthIndicatorAutoConfiguration,\
18+
org.springframework.boot.actuate.autoconfigure.elasticsearch.ElasticSearchRestHealthIndicatorAutoConfiguration,\
1819
org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration,\
1920
org.springframework.boot.actuate.autoconfigure.endpoint.jmx.JmxEndpointAutoConfiguration,\
2021
org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration,\

spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/elasticsearch/ElasticsearchRestHealthIndicator.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,10 @@
1616

1717
package org.springframework.boot.actuate.elasticsearch;
1818

19-
import java.io.InputStreamReader;
19+
import java.io.InputStream;
2020
import java.nio.charset.StandardCharsets;
21+
import java.util.Map;
2122

22-
import com.google.gson.JsonElement;
23-
import com.google.gson.JsonParser;
2423
import org.apache.http.HttpStatus;
2524
import org.elasticsearch.client.Request;
2625
import org.elasticsearch.client.Response;
@@ -29,22 +28,29 @@
2928
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
3029
import org.springframework.boot.actuate.health.Health;
3130
import org.springframework.boot.actuate.health.HealthIndicator;
31+
import org.springframework.boot.json.JsonParser;
32+
import org.springframework.boot.json.JsonParserFactory;
33+
import org.springframework.util.StreamUtils;
3234

3335
/**
34-
* {@link HealthIndicator} for an Elasticsearch cluster by REST.
36+
* {@link HealthIndicator} for an Elasticsearch cluster using a {@link RestClient}.
3537
*
3638
* @author Artsiom Yudovin
37-
* @since 2.1.0
39+
* @author Brian Clozel
40+
* @since 2.1.1
3841
*/
3942
public class ElasticsearchRestHealthIndicator extends AbstractHealthIndicator {
4043

44+
private static final String RED_STATUS = "red";
45+
4146
private final RestClient client;
4247

43-
private final JsonParser jsonParser = new JsonParser();
48+
private final JsonParser jsonParser;
4449

4550
public ElasticsearchRestHealthIndicator(RestClient client) {
4651
super("Elasticsearch health check failed");
4752
this.client = client;
53+
this.jsonParser = JsonParserFactory.getJsonParser();
4854
}
4955

5056
@Override
@@ -56,12 +62,11 @@ protected void doHealthCheck(Health.Builder builder) throws Exception {
5662
builder.down();
5763
}
5864
else {
59-
try (InputStreamReader reader = new InputStreamReader(
60-
response.getEntity().getContent(), StandardCharsets.UTF_8)) {
61-
JsonElement root = this.jsonParser.parse(reader);
62-
JsonElement status = root.getAsJsonObject().get("status");
63-
if (status.getAsString()
64-
.equals(io.searchbox.cluster.Health.Status.RED.getKey())) {
65+
try (InputStream is = response.getEntity().getContent()) {
66+
Map<String, Object> root = this.jsonParser
67+
.parseMap(StreamUtils.copyToString(is, StandardCharsets.UTF_8));
68+
String status = (String) root.get("status");
69+
if (status.equals(RED_STATUS)) {
6570
builder.outOfService();
6671
}
6772
else {

0 commit comments

Comments
 (0)