DATAES-9 : multiple elasticsearch cluster nodes not getting parsed if using property file

This commit is contained in:
Mohsin Husen 2013-05-13 17:51:00 +01:00
parent 7df712a3b6
commit 151c62361c
2 changed files with 61 additions and 63 deletions

View File

@ -27,8 +27,7 @@ import org.springframework.util.Assert;
import java.util.Properties;
import static org.apache.commons.lang.StringUtils.substringAfter;
import static org.apache.commons.lang.StringUtils.substringBefore;
import static org.apache.commons.lang.StringUtils.*;
import static org.elasticsearch.common.settings.ImmutableSettings.settingsBuilder;
/**
@ -41,10 +40,11 @@ import static org.elasticsearch.common.settings.ImmutableSettings.settingsBuilde
public class TransportClientFactoryBean implements FactoryBean<TransportClient>, InitializingBean, DisposableBean {
private static final Logger logger = LoggerFactory.getLogger(TransportClientFactoryBean.class);
private String[] clusterNodes;
private String clusterNodes;
private TransportClient client;
private Properties properties;
static final String COLON = ":";
static final String COMMA = ",";
@Override
public void destroy() throws Exception {
@ -80,8 +80,8 @@ public class TransportClientFactoryBean implements FactoryBean<TransportClient>,
protected void buildClient() throws Exception {
client = new TransportClient(settings());
Assert.notEmpty(clusterNodes, "[Assertion failed] clusterNodes settings missing.");
for (String clusterNode : clusterNodes) {
Assert.hasText(clusterNodes, "[Assertion failed] clusterNodes settings missing.");
for (String clusterNode : split(clusterNodes,COMMA)) {
String hostName = substringBefore(clusterNode, COLON);
String port = substringAfter(clusterNode, COLON);
Assert.hasText(hostName, "[Assertion failed] missing host name in 'clusterNodes'");
@ -99,7 +99,7 @@ public class TransportClientFactoryBean implements FactoryBean<TransportClient>,
return settingsBuilder().put("client.transport.sniff", true).build();
}
public void setClusterNodes(String[] clusterNodes) {
public void setClusterNodes(String clusterNodes) {
this.clusterNodes = clusterNodes;
}

View File

@ -33,8 +33,6 @@ import static org.apache.commons.lang.StringUtils.split;
public class TransportClientBeanDefinitionParser extends AbstractBeanDefinitionParser {
private static final String SEPARATOR_CHARS = ",";
@Override
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(TransportClientFactoryBean.class);
@ -43,7 +41,7 @@ public class TransportClientBeanDefinitionParser extends AbstractBeanDefinitionP
}
private void setClusterNodes(Element element, BeanDefinitionBuilder builder) {
builder.addPropertyValue("clusterNodes", split(element.getAttribute("cluster-nodes"), SEPARATOR_CHARS));
builder.addPropertyValue("clusterNodes", element.getAttribute("cluster-nodes"));
}
private AbstractBeanDefinition getSourcedBeanDefinition(BeanDefinitionBuilder builder, Element source,