Allow Elasticsearch client-transport-sniff to be configured via the env

Previously, a TransportClient sniff property could not be configured
while using Spring Boot’s Elasticsearch auto-configuration. This commit
adds a new property, spring.data.elasticsearch.client-transport-sniff,
that can be used to configure the TransportClient while continuing to
use the auto-configuration support.

Closes gh-1838
pull/2707/merge
Andy Wilkinson 10 years ago
parent b82e220008
commit 89b4cac8b0

@ -87,6 +87,7 @@ public class ElasticsearchAutoConfiguration implements DisposableBean {
TransportClientFactoryBean factory = new TransportClientFactoryBean(); TransportClientFactoryBean factory = new TransportClientFactoryBean();
factory.setClusterName(this.properties.getClusterName()); factory.setClusterName(this.properties.getClusterName());
factory.setClusterNodes(this.properties.getClusterNodes()); factory.setClusterNodes(this.properties.getClusterNodes());
factory.setClientTransportSniff(this.properties.getClientTransportSniff());
factory.afterPropertiesSet(); factory.afterPropertiesSet();
TransportClient client = factory.getObject(); TransportClient client = factory.getObject();
this.releasable = client; this.releasable = client;

@ -39,6 +39,11 @@ public class ElasticsearchProperties {
*/ */
private String clusterNodes; private String clusterNodes;
/**
* Allow the client to sniff for other members of the cluster.
*/
private boolean clientTransportSniff = true;
public String getClusterName() { public String getClusterName() {
return this.clusterName; return this.clusterName;
} }
@ -54,4 +59,13 @@ public class ElasticsearchProperties {
public void setClusterNodes(String clusterNodes) { public void setClusterNodes(String clusterNodes) {
this.clusterNodes = clusterNodes; this.clusterNodes = clusterNodes;
} }
public boolean getClientTransportSniff() {
return this.clientTransportSniff;
}
public void setClientTransportSniff(boolean clientTransportSniff) {
this.clientTransportSniff = clientTransportSniff;
}
} }

@ -349,6 +349,7 @@ content into your application; rather pick only the properties that you need.
spring.data.solr.repositories.enabled=true # if spring data repository support is enabled spring.data.solr.repositories.enabled=true # if spring data repository support is enabled
# ELASTICSEARCH ({sc-spring-boot-autoconfigure}/elasticsearch/ElasticsearchProperties.{sc-ext}[ElasticsearchProperties]) # ELASTICSEARCH ({sc-spring-boot-autoconfigure}/elasticsearch/ElasticsearchProperties.{sc-ext}[ElasticsearchProperties])
spring.data.elasticsearch.client-transport-sniff=true # Allow the client to sniff for other members of the cluster
spring.data.elasticsearch.cluster-name= # The cluster name (defaults to elasticsearch) spring.data.elasticsearch.cluster-name= # The cluster name (defaults to elasticsearch)
spring.data.elasticsearch.cluster-nodes= # The address(es) of the server node (comma-separated; if not specified starts a client node) spring.data.elasticsearch.cluster-nodes= # The address(es) of the server node (comma-separated; if not specified starts a client node)
spring.data.elasticsearch.repositories.enabled=true # if spring data repository support is enabled spring.data.elasticsearch.repositories.enabled=true # if spring data repository support is enabled

Loading…
Cancel
Save