From 8c42f0dcb9cada5d3d0f5084cb623074ec33e6e6 Mon Sep 17 00:00:00 2001 From: Mark Vainomaa Date: Thu, 1 Sep 2016 15:32:57 +0300 Subject: [PATCH] Add SSL client and move logger out from abs. class --- .../utils/etcdconnector/EtcdConnector.java | 4 ++ .../etcdconnector/EtcdConnectorBase.java | 9 ++--- .../utils/etcdconnector/EtcdSSLConnector.java | 39 +++++++++++++++++++ 3 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdSSLConnector.java diff --git a/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdConnector.java b/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdConnector.java index 07049b1..efcea6d 100644 --- a/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdConnector.java +++ b/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdConnector.java @@ -2,6 +2,7 @@ package eu.mikroskeem.utils.etcdconnector; import mousio.client.retry.RetryOnce; import mousio.etcd4j.EtcdClient; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.net.URI; @@ -16,6 +17,9 @@ public class EtcdConnector extends EtcdConnectorBase { public EtcdConnector(URI... etcdUrls) throws IOException { super(); + /* Set up logger */ + logger = LoggerFactory.getLogger("EtcdConnector"); + /* Initialize client */ initClient(etcdUrls); diff --git a/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdConnectorBase.java b/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdConnectorBase.java index c36fe40..6b799e0 100644 --- a/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdConnectorBase.java +++ b/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdConnectorBase.java @@ -17,13 +17,10 @@ import java.util.List; import java.util.concurrent.TimeoutException; abstract class EtcdConnectorBase { - final Logger logger; + Logger logger; EtcdClient etcdClient; - EtcdConnectorBase() throws IOException { - /* Set up logger */ - logger = LoggerFactory.getLogger("EtcdConnector"); - } + EtcdConnectorBase() throws IOException {} /** @@ -171,7 +168,7 @@ abstract class EtcdConnectorBase { * @param ttl key ttl (seconds) * @return whether write succeeded or not */ - public boolean putKey(@NotNull String path, @NotNull String value, @NotNull int ttl){ + public boolean putKey(@NotNull String path, @NotNull String value, @NotNull Integer ttl){ logger.debug("putKey: {}, {}, {}", path, value, ttl); try { EtcdKeysResponse response = etcdClient.put(path, new Gson().toJson(value)).ttl(ttl).send().get(); diff --git a/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdSSLConnector.java b/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdSSLConnector.java new file mode 100644 index 0000000..e98c99b --- /dev/null +++ b/EtcdConnector/src/main/java/eu/mikroskeem/utils/etcdconnector/EtcdSSLConnector.java @@ -0,0 +1,39 @@ +package eu.mikroskeem.utils.etcdconnector; + +import io.netty.handler.ssl.SslContext; +import io.netty.handler.ssl.SslContextBuilder; +import mousio.client.retry.RetryOnce; +import mousio.etcd4j.EtcdClient; +import org.slf4j.LoggerFactory; + +import javax.net.ssl.SSLException; +import java.io.IOException; +import java.net.URI; + +public class EtcdSSLConnector extends EtcdConnectorBase { + public EtcdSSLConnector(URI... etcdUrls) throws IOException { + super(); + + /* Set up logger */ + logger = LoggerFactory.getLogger("EtcdConnector"); + + /* Initialize client */ + initClient(etcdUrls); + + /* Test client */ + testEtcd(); + } + + @Override void initClient(URI... urls){ + SslContext sslContext; + try { + //sslContext = SslContext.newClientContext(); + sslContext = SslContextBuilder.forClient().build(); + } catch (SSLException e){ + logger.error("Encountered error while creating new SSL context"); + throw new RuntimeException(e); + } + etcdClient = new EtcdClient(sslContext, urls); + etcdClient.setRetryHandler(new RetryOnce(5000)); + } +} \ No newline at end of file