Enable non local node Elasticsearch instances

Update ElasticsearchAutoConfiguration to allow `http.enabled` and
`node.local` settings to be specified by ElasticsearchProperties.

Fixes gh-2805
Closes gh-2913
This commit is contained in:
Artur Konczak
2015-05-05 01:07:54 +01:00
committed by Phillip Webb
parent f22c91ac94
commit 2e66f17491
2 changed files with 45 additions and 9 deletions

View File

@@ -28,7 +28,6 @@ import org.springframework.boot.test.EnvironmentTestUtils;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
@@ -53,7 +52,7 @@ public class ElasticsearchAutoConfigurationTests {
}
@Test
public void createNodeClient() {
public void createNodeClientWithDefaults() {
this.context = new AnnotationConfigApplicationContext();
EnvironmentTestUtils.addEnvironment(this.context,
"spring.data.elasticsearch.properties.foo.bar:baz",
@@ -63,9 +62,31 @@ public class ElasticsearchAutoConfigurationTests {
ElasticsearchAutoConfiguration.class);
this.context.refresh();
assertEquals(1, this.context.getBeanNamesForType(Client.class).length);
Client client = this.context.getBean(Client.class);
assertThat(client, instanceOf(NodeClient.class));
assertThat(((NodeClient) client).settings().get("foo.bar"), is(equalTo("baz")));
NodeClient client = (NodeClient) this.context.getBean(Client.class);
assertThat(client.settings().get("foo.bar"), is(equalTo("baz")));
assertThat(client.settings().get("node.local"), is(equalTo("true")));
assertThat(client.settings().get("http.enabled"), is(equalTo("false")));
}
@Test
public void createNodeClientWithOverrides() {
this.context = new AnnotationConfigApplicationContext();
EnvironmentTestUtils.addEnvironment(this.context,
"spring.data.elasticsearch.properties.foo.bar:baz",
"spring.data.elasticsearch.properties.path.data:target/data",
"spring.data.elasticsearch.properties.path.logs:target/logs",
"spring.data.elasticsearch.properties.node.local:false",
"spring.data.elasticsearch.properties.node.data:true",
"spring.data.elasticsearch.properties.http.enabled:true");
this.context.register(PropertyPlaceholderAutoConfiguration.class,
ElasticsearchAutoConfiguration.class);
this.context.refresh();
assertEquals(1, this.context.getBeanNamesForType(Client.class).length);
NodeClient client = (NodeClient) this.context.getBean(Client.class);
assertThat(client.settings().get("foo.bar"), is(equalTo("baz")));
assertThat(client.settings().get("node.local"), is(equalTo("false")));
assertThat(client.settings().get("node.data"), is(equalTo("true")));
assertThat(client.settings().get("http.enabled"), is(equalTo("true")));
}
@Test