diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-03-11 15:09:47 +0100 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-03-11 15:09:47 +0100 |
commit | 8907c209b9e1e8a43a3dc23c8f833e2c327326e4 (patch) | |
tree | 02094833dccf8adf3d9d77093ca1e75b45e756e2 /zookeeper-client-common/src | |
parent | 8dfd194e88197552c6dcb9c0806c024868c61dba (diff) |
Construct ZKClientConfig from ZkClientConfigBuilder
Use ZKClientConfig builder from Curator and ZooKeeperDatabase
Diffstat (limited to 'zookeeper-client-common/src')
-rw-r--r-- | zookeeper-client-common/src/main/java/com/yahoo/vespa/zookeeper/client/ZkClientConfigBuilder.java | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/zookeeper-client-common/src/main/java/com/yahoo/vespa/zookeeper/client/ZkClientConfigBuilder.java b/zookeeper-client-common/src/main/java/com/yahoo/vespa/zookeeper/client/ZkClientConfigBuilder.java index 62191880b8f..af75bd7aa5c 100644 --- a/zookeeper-client-common/src/main/java/com/yahoo/vespa/zookeeper/client/ZkClientConfigBuilder.java +++ b/zookeeper-client-common/src/main/java/com/yahoo/vespa/zookeeper/client/ZkClientConfigBuilder.java @@ -4,7 +4,13 @@ package com.yahoo.vespa.zookeeper.client; import com.yahoo.security.tls.MixedMode; import com.yahoo.security.tls.TlsContext; import com.yahoo.security.tls.TransportSecurityUtils; +import org.apache.zookeeper.client.ZKClientConfig; +import org.apache.zookeeper.server.quorum.QuorumPeerConfig; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -28,6 +34,22 @@ public class ZkClientConfigBuilder { public ZkClientConfigBuilder() {} + public ZKClientConfig toConfig(Path configFile) throws IOException, QuorumPeerConfig.ConfigException { + String configString = toConfigString(); + Files.createDirectories(configFile.getParent()); + Path tempFile = configFile.resolveSibling("." + configFile.getFileName() + ".tmp"); + Files.writeString(tempFile, configString); + Files.move(tempFile, configFile, StandardCopyOption.ATOMIC_MOVE); + return new ZKClientConfig(configFile.toString()); + } + + public ZKClientConfig toConfig() { + ZKClientConfig config = new ZKClientConfig(); + Map<String, String> configProperties = toConfigProperties(); + configProperties.forEach(config::setProperty); + return config; + } + public String toConfigString() { StringBuilder builder = new StringBuilder(); Map<String, String> properties = toConfigProperties(); |