@Override
    public String readSource() throws Exception {
        CompletableFuture<GetResponse> responseFuture = client.getKVClient().get(ByteSequence.from(key, charset));
        List<KeyValue> kvs = responseFuture.get().getKvs();
        return kvs.size() == 0 ? null : kvs.get(0).getValue().toString(charset);
    }
@Test
    public void testReadSource() throws Exception {
        EtcdDataSource dataSource = new EtcdDataSource("foo", value -> value);
        KV kvClient = Client.builder()
                .endpoints(endPoints)
                .build().getKVClient();

        kvClient.put(ByteSequence.from("foo".getBytes()), ByteSequence.from("test".getBytes()));
        Assert.assertNotNull(dataSource.readSource().equals("test"));

        kvClient.put(ByteSequence.from("foo".getBytes()), ByteSequence.from("test2".getBytes()));
        Assert.assertNotNull(dataSource.getProperty().equals("test2"));
    }