From 8ed20068ca95c3eed4110de5a48e3c4c1b3db7ce Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Fri, 30 Sep 2016 10:34:25 +0200 Subject: [PATCH 1/2] Fix list property to be mutable Closes gh-7045 --- .../boot/autoconfigure/elasticsearch/jest/JestProperties.java | 4 +++- .../META-INF/additional-spring-configuration-metadata.json | 4 ++++ .../elasticsearch/jest/JestAutoConfigurationTests.java | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) 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 9fcd257d350..166ce812754 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 @@ -16,6 +16,7 @@ package org.springframework.boot.autoconfigure.elasticsearch.jest; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -33,7 +34,8 @@ public class JestProperties { /** * Comma-separated list of the Elasticsearch instances to use. */ - private List uris = Collections.singletonList("http://localhost:9200"); + private List uris = new ArrayList(Collections.singletonList( + "http://localhost:9200")); /** * Login user. diff --git a/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 6b06e3d420d..933f160f29a 100644 --- a/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/spring-boot-autoconfigure/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -108,6 +108,10 @@ "description": "Enable Solr repositories.", "defaultValue": true }, + { + "name": "spring.elasticsearch.jest.uris", + "defaultValue": ["http://localhost:9200"] + }, { "name": "spring.http.encoding.enabled", "type": "java.lang.Boolean", diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestAutoConfigurationTests.java index 66735a6df2b..b38d925e3ef 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/elasticsearch/jest/JestAutoConfigurationTests.java @@ -73,7 +73,7 @@ public class JestAutoConfigurationTests { @Test public void customJestClient() { load(CustomJestClient.class, - "spring.elasticsearch.jest.uris=http://localhost:9200"); + "spring.elasticsearch.jest.uris[0]=http://localhost:9200"); assertThat(this.context.getBeansOfType(JestClient.class)).hasSize(1); } From e56119165e9ab7640076c0b132cf17ef883f7c61 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Fri, 30 Sep 2016 10:51:48 +0200 Subject: [PATCH 2/2] Close JestClient on shutdown Closes gh-7051 --- .../autoconfigure/elasticsearch/jest/JestAutoConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 4df795bf80d..870b104409c 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 @@ -56,7 +56,7 @@ public class JestAutoConfiguration { this.gsonProvider = gsonProvider; } - @Bean + @Bean(destroyMethod = "shutdownClient") @ConditionalOnMissingBean public JestClient jestClient() { JestClientFactory factory = new JestClientFactory();