summaryrefslogtreecommitdiffstats
path: root/zookeeper-client-common
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-03-11 15:09:47 +0100
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-03-11 15:09:47 +0100
commit8907c209b9e1e8a43a3dc23c8f833e2c327326e4 (patch)
tree02094833dccf8adf3d9d77093ca1e75b45e756e2 /zookeeper-client-common
parent8dfd194e88197552c6dcb9c0806c024868c61dba (diff)
Construct ZKClientConfig from ZkClientConfigBuilder
Use ZKClientConfig builder from Curator and ZooKeeperDatabase
Diffstat (limited to 'zookeeper-client-common')
-rw-r--r--zookeeper-client-common/src/main/java/com/yahoo/vespa/zookeeper/client/ZkClientConfigBuilder.java22
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();