Project

General

Profile

« Previous | Next » 

Revision 53801

added utility to parse zookeper connection url, to be used by modules needing to create a client

View differences:

modules/dnet-index-solr-common/branches/solr75/src/main/java/eu/dnetlib/functionality/index/utils/ZkServers.java
1
package eu.dnetlib.functionality.index.utils;
2

  
3
import com.google.common.base.Splitter;
4
import com.google.common.collect.Lists;
5
import org.apache.commons.lang3.StringUtils;
6
import org.apache.commons.logging.Log;
7
import org.apache.commons.logging.LogFactory;
8

  
9
import java.util.List;
10
import java.util.Optional;
11

  
12
public class ZkServers {
13

  
14
    private static final Log log = LogFactory.getLog(ZkServers.class);
15

  
16
    private List<String> hosts;
17

  
18
    private Optional<String> chroot;
19

  
20
    public static ZkServers newInstance(final String zkUrl) {
21

  
22
        //quorum0:2182,quorum1:2182,quorum2:2182,quorum3:2182,quorum4:2182/solr-dev-openaire
23
        String urls = zkUrl;
24
        final Optional<String> chRoot = Optional.of(StringUtils.substringAfterLast(zkUrl, "/"));
25
        if (chRoot.isPresent() && StringUtils.isNotBlank(chRoot.get())) {
26
            log.debug(String.format("found zk chroot %s", chRoot));
27
            urls = zkUrl.replaceAll("/" + chRoot, "");
28
        }
29

  
30
        final List<String> urlList = Lists.newArrayList(Splitter.on(",").omitEmptyStrings().split(urls));
31
        log.debug(String.format("zk urls %s", zkUrl));
32

  
33
        return new ZkServers(urlList, chRoot);
34
    }
35

  
36
    public ZkServers(List<String> hosts, Optional<String> chroot) {
37
        this.hosts = hosts;
38
        this.chroot = chroot;
39
    }
40

  
41
    public List<String> getHosts() {
42
        return hosts;
43
    }
44

  
45
    public void setHosts(List<String> hosts) {
46
        this.hosts = hosts;
47
    }
48

  
49
    public Optional<String> getChroot() {
50
        return chroot;
51
    }
52

  
53
    public void setChroot(Optional<String> chroot) {
54
        this.chroot = chroot;
55
    }
56
}
57

  
modules/dnet-index-solr-common/branches/solr75/pom.xml
39 39
			<artifactId>guava</artifactId>
40 40
			<version>${google.guava.version}</version>
41 41
		</dependency>
42
		<dependency>
43
			<groupId>commons-logging</groupId>
44
			<artifactId>commons-logging</artifactId>
45
			<version>${commons.logging.version}</version>
46
		</dependency>
47
		<dependency>
48
			<groupId>org.apache.commons</groupId>
49
			<artifactId>commons-lang3</artifactId>
50
			<version>3.5</version>
51
		</dependency>
42 52

  
43 53
	</dependencies>
44 54
</project>

Also available in: Unified diff