From a60e356136558d7ce2419a9971752dc38f155c05 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Tue, 27 Dec 2016 10:46:26 +0100 Subject: [PATCH] Enable Jest's multi-threaded support by default Since the `JestClient` is auto-configured as a bean, it must have its multi-threaded support enabled by default. This commit exposes a new `spring.elasticsearch.jest.multi-threaded` property that is `true` by default. Closes gh-6806 --- .../elasticsearch/jest/JestAutoConfiguration.java | 1 + .../elasticsearch/jest/JestProperties.java | 13 +++++++++++++ .../asciidoc/appendix-application-properties.adoc | 1 + 3 files changed, 15 insertions(+) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestAutoConfiguration.java index 870b104409c..ed543a1a9f4 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestAutoConfiguration.java @@ -81,6 +81,7 @@ public class JestAutoConfiguration { if (gson != null) { builder.gson(gson); } + builder.multiThreaded(this.properties.isMultiThreaded()); return builder.connTimeout(this.properties.getConnectionTimeout()) .readTimeout(this.properties.getReadTimeout()).build(); } diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestProperties.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestProperties.java index bb0ca4cef15..4830c9a4b72 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestProperties.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestProperties.java @@ -45,6 +45,11 @@ public class JestProperties { */ private String password; + /** + * Enable connection requests from multiple execution threads. + */ + private boolean multiThreaded = true; + /** * Connection timeout in milliseconds. */ @@ -84,6 +89,14 @@ public class JestProperties { this.password = password; } + public boolean isMultiThreaded() { + return this.multiThreaded; + } + + public void setMultiThreaded(boolean multiThreaded) { + this.multiThreaded = multiThreaded; + } + public int getConnectionTimeout() { return this.connectionTimeout; } diff --git a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc index aec1627bf1c..72140365f37 100644 --- a/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc +++ b/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc @@ -631,6 +631,7 @@ content into your application; rather pick only the properties that you need. # JEST (Elasticsearch HTTP client) ({sc-spring-boot-autoconfigure}/jest/JestProperties.{sc-ext}[JestProperties]) spring.elasticsearch.jest.connection-timeout=3000 # Connection timeout in milliseconds. + spring.elasticsearch.jest.multi-threaded=true # Enable connection requests from multiple execution threads. spring.elasticsearch.jest.password= # Login password. spring.elasticsearch.jest.proxy.host= # Proxy host the HTTP client should use. spring.elasticsearch.jest.proxy.port= # Proxy port the HTTP client should use.