You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by wl...@apache.org on 2019/06/14 03:41:21 UTC

[incubator-tamaya-extensions] branch TAMAYA-394-sonar-errors created (now 82f76b7)

This is an automated email from the ASF dual-hosted git repository.

wlieurance pushed a change to branch TAMAYA-394-sonar-errors
in repository https://gitbox.apache.org/repos/asf/incubator-tamaya-extensions.git.


      at 82f76b7  TAMAYA-394 Sonar vulns

This branch includes the following new commits:

     new 457956b  TAMAYA-394 Sonar bugs
     new 82f76b7  TAMAYA-394 Sonar vulns

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-tamaya-extensions] 01/02: TAMAYA-394 Sonar bugs

Posted by wl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

wlieurance pushed a commit to branch TAMAYA-394-sonar-errors
in repository https://gitbox.apache.org/repos/asf/incubator-tamaya-extensions.git

commit 457956b33dfe161fcf53bdc81ca66d9d11cf6c23
Author: William Lieurance <wi...@namikoda.com>
AuthorDate: Thu Jun 13 22:32:50 2019 -0500

    TAMAYA-394 Sonar bugs
---
 .../tamaya/examples/distributed/Display.java       |   1 +
 .../examples/distributed/DisplayManager.java       |   1 +
 .../examples/distributed/DisplayRegistration.java  |   6 +-
 modules/etcd/nbactions.xml                         |  15 ++
 .../java/org/apache/tamaya/etcd/EtcdAccessor.java  | 182 ++++++++++-----------
 .../org/apache/tamaya/etcd/EtcdBackendConfig.java  |   6 +-
 .../org/apache/tamaya/etcd/EtcdAccessorTest.java   |  31 ++--
 .../apache/tamaya/etcd/EtcdBackendConfigTest.java  |   8 +-
 .../apache/tamaya/etcd/EtcdPropertySourceTest.java |  14 +-
 .../java/org/apache/tamaya/json/JSONFormat.java    |  19 ++-
 .../org/apache/tamaya/json/JSONPropertySource.java |  66 +++++---
 .../apache/tamaya/inject/spi/InjectionUtils.java   |   8 +-
 .../tamaya/inject/internal/InjectionHelper.java    |   2 +-
 .../tamaya/microprofile/MicroprofileConfig.java    |  12 --
 .../converter/BooleanAsIntegerConverterFix.java    |   3 +
 .../microprofile/converter/ProviderConverter.java  |   3 +
 .../main/java/org/apache/tamaya/osgi/Backups.java  |   4 +-
 .../java/org/apache/tamaya/osgi/ConfigHistory.java |   4 +-
 18 files changed, 212 insertions(+), 173 deletions(-)

diff --git a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/Display.java b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/Display.java
index 490def0..ba0e8db 100644
--- a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/Display.java
+++ b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/Display.java
@@ -109,6 +109,7 @@ public class Display extends Application{
                 Thread.sleep(100L);
             } catch (InterruptedException e) {
                 e.printStackTrace();
+                Thread.currentThread().interrupt();
             }
         }
         titleField.getStyleClass().add("title");
diff --git a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayManager.java b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayManager.java
index 51770bc..b5cf2a2 100644
--- a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayManager.java
+++ b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayManager.java
@@ -96,6 +96,7 @@ public class DisplayManager extends Application{
                 Thread.sleep(100L);
             } catch (InterruptedException e) {
                 e.printStackTrace();
+                Thread.currentThread().interrupt();
             }
         }
         monitorField.getStyleClass().add("monitor");
diff --git a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayRegistration.java b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayRegistration.java
index d7354ba..a09c8ba 100644
--- a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayRegistration.java
+++ b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayRegistration.java
@@ -56,7 +56,11 @@ public class DisplayRegistration implements Serializable{
             adr = InetAddress.getLocalHost();
             this.host = adr.getCanonicalHostName();
         } catch(Exception e){
-            this.host = adr.getHostName();
+            if (adr == null){
+                this.host = "localhost";
+            }else{
+                this.host = adr.getHostName();
+            }
         }
     }
 
diff --git a/modules/etcd/nbactions.xml b/modules/etcd/nbactions.xml
new file mode 100644
index 0000000..7a42ed5
--- /dev/null
+++ b/modules/etcd/nbactions.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<actions>
+        <action>
+            <actionName>test</actionName>
+            <packagings>
+                <packaging>*</packaging>
+            </packagings>
+            <goals>
+                <goal>test</goal>
+            </goals>
+            <properties>
+                <etcd.server.urls>http://localhost:2379</etcd.server.urls>
+            </properties>
+        </action>
+    </actions>
diff --git a/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdAccessor.java b/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdAccessor.java
index fcc5f49..c44a755 100644
--- a/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdAccessor.java
+++ b/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdAccessor.java
@@ -88,10 +88,6 @@ class EtcdAccessor {
      * The base server url.
      */
     private final String serverURL;
-    /**
-     * The http client.
-     */
-    private final CloseableHttpClient httpclient = HttpClients.createDefault();
 
     /**
      * Creates a new instance with the basic access url.
@@ -118,8 +114,7 @@ class EtcdAccessor {
      */
     public String getVersion() {
         String version = "<ERROR>";
-        try {
-            final CloseableHttpClient httpclient = HttpClients.createDefault();
+        try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
             final HttpGet httpGet = new HttpGet(serverURL + "/version");
             httpGet.setConfig(RequestConfig.copy(RequestConfig.DEFAULT).setSocketTimeout(socketTimeout)
                     .setConnectTimeout(timeout).build());
@@ -139,9 +134,9 @@ class EtcdAccessor {
     }
 
     /**
-     * Ask etcd for a single key, createValue pair. Hereby the response returned from
-     * etcd:
-     * 
+     * Ask etcd for a single key, createValue pair. Hereby the response returned
+     * from etcd:
+     *
      * <pre>
      * {
      * "action": "current",
@@ -153,9 +148,9 @@ class EtcdAccessor {
      * }
      * }
      * </pre>
-     * 
+     *
      * is mapped to:
-     * 
+     *
      * <pre>
      *     key=value
      *     _key.source=[etcd]http://127.0.0.1:4001
@@ -170,34 +165,35 @@ class EtcdAccessor {
      */
     public Map<String, String> get(String key) {
         final Map<String, String> result = new HashMap<>();
-        try {
+        try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
             final HttpGet httpGet = new HttpGet(serverURL + "/v2/keys/" + key);
             httpGet.setConfig(RequestConfig.copy(RequestConfig.DEFAULT).setSocketTimeout(socketTimeout)
                     .setConnectionRequestTimeout(timeout).setConnectTimeout(connectTimeout).build());
-            try (CloseableHttpResponse response = httpclient.execute(httpGet)) {
+            try (CloseableHttpResponse response = httpclient.execute(httpGet);) {
                 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                     final HttpEntity entity = response.getEntity();
-                    final JsonReader reader = readerFactory
-                            .createReader(new StringReader(EntityUtils.toString(entity)));
-                    final JsonObject o = reader.readObject();
-                    final JsonObject node = o.getJsonObject("value");
-                    if (node.containsKey("key")) {
-                        result.put(key, node.getString("key"));
-                        result.put("_" + key + ".source", "[etcd]" + serverURL);
-                    }
-                    if (node.containsKey("createdIndex")) {
-                        result.put("_" + key + ".createdIndex", String.valueOf(node.getInt("createdIndex")));
+                    try (JsonReader reader = readerFactory
+                            .createReader(new StringReader(EntityUtils.toString(entity)))) {
+                        final JsonObject o = reader.readObject();
+                        final JsonObject node = o.getJsonObject("node");
+                        if (node.containsKey("value")) {
+                            result.put(key, node.getString("value"));
+                            result.put("_" + key + ".source", "[etcd]" + serverURL);
+                        }
+                        if (node.containsKey("createdIndex")) {
+                            result.put("_" + key + ".createdIndex", String.valueOf(node.getInt("createdIndex")));
+                        }
+                        if (node.containsKey("modifiedIndex")) {
+                            result.put("_" + key + ".modifiedIndex", String.valueOf(node.getInt("modifiedIndex")));
+                        }
+                        if (node.containsKey("expiration")) {
+                            result.put("_" + key + ".expiration", String.valueOf(node.getString("expiration")));
+                        }
+                        if (node.containsKey("ttl")) {
+                            result.put("_" + key + ".ttl", String.valueOf(node.getInt("ttl")));
+                        }
+                        EntityUtils.consume(entity);
                     }
-                    if (node.containsKey("modifiedIndex")) {
-                        result.put("_" + key + ".modifiedIndex", String.valueOf(node.getInt("modifiedIndex")));
-                    }
-                    if (node.containsKey("expiration")) {
-                        result.put("_" + key + ".expiration", String.valueOf(node.getString("expiration")));
-                    }
-                    if (node.containsKey("ttl")) {
-                        result.put("_" + key + ".ttl", String.valueOf(node.getInt("ttl")));
-                    }
-                    EntityUtils.consume(entity);
                 } else {
                     result.put("_" + key + ".NOT_FOUND.target", "[etcd]" + serverURL);
                 }
@@ -212,7 +208,7 @@ class EtcdAccessor {
     /**
      * Creates/updates an entry in etcd without any ttl setCurrent.
      *
-     * @param key   the property key, not null
+     * @param key the property key, not null
      * @param value the createValue to be setCurrent
      * @return the result mapProperties as described above.
      * @see #set(String, String, Integer)
@@ -223,7 +219,7 @@ class EtcdAccessor {
 
     /**
      * Creates/updates an entry in etcd. The response as follows:
-     * 
+     *
      * <pre>
      *     {
      * "action": "setCurrent",
@@ -241,9 +237,9 @@ class EtcdAccessor {
      * }
      * }
      * </pre>
-     * 
+     *
      * is mapped to:
-     * 
+     *
      * <pre>
      *     key=createValue
      *     _key.source=[etcd]http://127.0.0.1:4001
@@ -258,14 +254,14 @@ class EtcdAccessor {
      *     _key.prevNode.expiration=...
      * </pre>
      *
-     * @param key        the property key, not null
-     * @param value      the createValue to be setCurrent
+     * @param key the property key, not null
+     * @param value the createValue to be setCurrent
      * @param ttlSeconds the ttl in seconds (optional)
      * @return the result mapProperties as described above.
      */
     public Map<String, String> set(String key, String value, Integer ttlSeconds) {
         final Map<String, String> result = new HashMap<>();
-        try {
+        try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
             final HttpPut put = new HttpPut(serverURL + "/v2/keys/" + key);
             put.setConfig(RequestConfig.copy(RequestConfig.DEFAULT).setSocketTimeout(socketTimeout)
                     .setConnectionRequestTimeout(timeout).setConnectTimeout(connectTimeout).build());
@@ -279,26 +275,27 @@ class EtcdAccessor {
                 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_CREATED
                         || response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                     final HttpEntity entity = response.getEntity();
-                    final JsonReader reader = readerFactory
-                            .createReader(new StringReader(EntityUtils.toString(entity)));
-                    final JsonObject o = reader.readObject();
-                    final JsonObject node = o.getJsonObject("value");
-                    if (node.containsKey("createdIndex")) {
-                        result.put("_" + key + ".createdIndex", String.valueOf(node.getInt("createdIndex")));
-                    }
-                    if (node.containsKey("modifiedIndex")) {
-                        result.put("_" + key + ".modifiedIndex", String.valueOf(node.getInt("modifiedIndex")));
-                    }
-                    if (node.containsKey("expiration")) {
-                        result.put("_" + key + ".expiration", String.valueOf(node.getString("expiration")));
-                    }
-                    if (node.containsKey("ttl")) {
-                        result.put("_" + key + ".ttl", String.valueOf(node.getInt("ttl")));
+                    try (JsonReader reader = readerFactory
+                            .createReader(new StringReader(EntityUtils.toString(entity)))) {
+                        final JsonObject o = reader.readObject();
+                        final JsonObject node = o.getJsonObject("node");
+                        if (node.containsKey("createdIndex")) {
+                            result.put("_" + key + ".createdIndex", String.valueOf(node.getInt("createdIndex")));
+                        }
+                        if (node.containsKey("modifiedIndex")) {
+                            result.put("_" + key + ".modifiedIndex", String.valueOf(node.getInt("modifiedIndex")));
+                        }
+                        if (node.containsKey("expiration")) {
+                            result.put("_" + key + ".expiration", String.valueOf(node.getString("expiration")));
+                        }
+                        if (node.containsKey("ttl")) {
+                            result.put("_" + key + ".ttl", String.valueOf(node.getInt("ttl")));
+                        }
+                        result.put(key, node.getString("value"));
+                        result.put("_" + key + ".source", "[etcd]" + serverURL);
+                        parsePrevNode(key, result, node);
+                        EntityUtils.consume(entity);
                     }
-                    result.put(key, node.getString("key"));
-                    result.put("_" + key + ".source", "[etcd]" + serverURL);
-                    parsePrevNode(key, result, node);
-                    EntityUtils.consume(entity);
                 }
             }
         } catch (final Exception e) {
@@ -310,7 +307,7 @@ class EtcdAccessor {
 
     /**
      * Deletes a given key. The response is as follows:
-     * 
+     *
      * <pre>
      *     _key.source=[etcd]http://127.0.0.1:4001
      *     _key.createdIndex=12
@@ -330,31 +327,32 @@ class EtcdAccessor {
      */
     public Map<String, String> delete(String key) {
         final Map<String, String> result = new HashMap<>();
-        try {
+        try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
             final HttpDelete delete = new HttpDelete(serverURL + "/v2/keys/" + key);
             delete.setConfig(RequestConfig.copy(RequestConfig.DEFAULT).setSocketTimeout(socketTimeout)
                     .setConnectionRequestTimeout(timeout).setConnectTimeout(connectTimeout).build());
             try (CloseableHttpResponse response = httpclient.execute(delete)) {
                 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                     final HttpEntity entity = response.getEntity();
-                    final JsonReader reader = readerFactory
-                            .createReader(new StringReader(EntityUtils.toString(entity)));
-                    final JsonObject o = reader.readObject();
-                    final JsonObject node = o.getJsonObject("value");
-                    if (node.containsKey("createdIndex")) {
-                        result.put("_" + key + ".createdIndex", String.valueOf(node.getInt("createdIndex")));
-                    }
-                    if (node.containsKey("modifiedIndex")) {
-                        result.put("_" + key + ".modifiedIndex", String.valueOf(node.getInt("modifiedIndex")));
+                    try (JsonReader reader = readerFactory
+                            .createReader(new StringReader(EntityUtils.toString(entity)))) {
+                        final JsonObject o = reader.readObject();
+                        final JsonObject node = o.getJsonObject("node");
+                        if (node.containsKey("createdIndex")) {
+                            result.put("_" + key + ".createdIndex", String.valueOf(node.getInt("createdIndex")));
+                        }
+                        if (node.containsKey("modifiedIndex")) {
+                            result.put("_" + key + ".modifiedIndex", String.valueOf(node.getInt("modifiedIndex")));
+                        }
+                        if (node.containsKey("expiration")) {
+                            result.put("_" + key + ".expiration", String.valueOf(node.getString("expiration")));
+                        }
+                        if (node.containsKey("ttl")) {
+                            result.put("_" + key + ".ttl", String.valueOf(node.getInt("ttl")));
+                        }
+                        parsePrevNode(key, result, o);
+                        EntityUtils.consume(entity);
                     }
-                    if (node.containsKey("expiration")) {
-                        result.put("_" + key + ".expiration", String.valueOf(node.getString("expiration")));
-                    }
-                    if (node.containsKey("ttl")) {
-                        result.put("_" + key + ".ttl", String.valueOf(node.getInt("ttl")));
-                    }
-                    parsePrevNode(key, result, o);
-                    EntityUtils.consume(entity);
                 }
             }
         } catch (final Exception e) {
@@ -399,7 +397,7 @@ class EtcdAccessor {
 
     /**
      * Access all properties. The response of:
-     * 
+     *
      * <pre>
      * {
      * "action": "current",
@@ -423,9 +421,9 @@ class EtcdAccessor {
      * }
      * }
      * </pre>
-     * 
+     *
      * is mapped to a regular Tamaya properties mapProperties as follows:
-     * 
+     *
      * <pre>
      *    key1=myvalue
      *     _key1.source=[etcd]http://127.0.0.1:4001
@@ -445,12 +443,13 @@ class EtcdAccessor {
      * </pre>
      *
      * @param directory remote directory to query.
-     * @param recursive allows to setCurrent if querying is performed recursively
+     * @param recursive allows to setCurrent if querying is performed
+     * recursively
      * @return all properties read from the remote server.
      */
     public Map<String, String> getProperties(String directory, boolean recursive) {
         final Map<String, String> result = new HashMap<>();
-        try {
+        try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
             final HttpGet get = new HttpGet(serverURL + "/v2/keys/" + directory + "?recursive=" + recursive);
             get.setConfig(RequestConfig.copy(RequestConfig.DEFAULT).setSocketTimeout(socketTimeout)
                     .setConnectionRequestTimeout(timeout).setConnectTimeout(connectTimeout).build());
@@ -458,13 +457,14 @@ class EtcdAccessor {
 
                 if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                     final HttpEntity entity = response.getEntity();
-                    final JsonReader reader = readerFactory.createReader(new StringReader(EntityUtils.toString(entity)));
-                    final JsonObject o = reader.readObject();
-                    final JsonObject node = o.getJsonObject("value");
-                    if (node != null) {
-                        addNodes(result, node);
+                    try (JsonReader reader = readerFactory.createReader(new StringReader(EntityUtils.toString(entity)))) {
+                        final JsonObject o = reader.readObject();
+                        final JsonObject node = o.getJsonObject("node");
+                        if (node != null){
+                           addNodes(result, node);
+                        }
+                        EntityUtils.consume(entity);
                     }
-                    EntityUtils.consume(entity);
                 }
             }
         } catch (final Exception e) {
@@ -479,7 +479,7 @@ class EtcdAccessor {
      * Recursively read out all key/values from this etcd JSON array.
      *
      * @param result mapProperties with key, values and metadata.
-     * @param node   the getValue to parse.
+     * @param node the getValue to parse.
      */
     private void addNodes(Map<String, String> result, JsonObject node) {
         if (!node.containsKey("dir") || "false".equals(node.get("dir").toString())) {
@@ -499,7 +499,7 @@ class EtcdAccessor {
             }
             result.put("_" + key + ".source", "[etcd]" + serverURL);
         } else {
-            final JsonArray nodes = node.getJsonArray("values");
+            final JsonArray nodes = node.getJsonArray("nodes");
             if (nodes != null) {
                 for (int i = 0; i < nodes.size(); i++) {
                     addNodes(result, nodes.getJsonObject(i));
diff --git a/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdBackendConfig.java b/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdBackendConfig.java
index 696f187..25a633a 100644
--- a/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdBackendConfig.java
+++ b/modules/etcd/src/main/java/org/apache/tamaya/etcd/EtcdBackendConfig.java
@@ -72,9 +72,9 @@ final class EtcdBackendConfig {
     }
 
     /**
-     * Evaluate the etcd target servers fomr system/environment property {@code tamaya.etcd.server}.
+     * Evaluate the etcd target servers for system/environment property {@code tamaya.etcd.server}.
      *
-     * @return the servers configured, or {@code http://127.0.0.1:4001} (default).
+     * @return the servers configured, or {@code http://127.0.0.1:2379} (default).
      */
     public static List<String> getServers() {
         String serverURLs = System.getProperty(TAMAYA_ETCD_SERVER_URLS);
@@ -82,7 +82,7 @@ final class EtcdBackendConfig {
             serverURLs = System.getenv(TAMAYA_ETCD_SERVER_URLS);
         }
         if (serverURLs == null) {
-            serverURLs = "http://127.0.0.1:4001";
+            serverURLs = "http://127.0.0.1:2379";
         }
         List<String> servers = new ArrayList<>();
         for (String url : serverURLs.split("\\,")) {
diff --git a/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdAccessorTest.java b/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdAccessorTest.java
index 0b5c1ae..43cca83 100644
--- a/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdAccessorTest.java
+++ b/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdAccessorTest.java
@@ -28,7 +28,8 @@ import java.util.UUID;
 import static org.assertj.core.api.Assertions.assertThat;
 
 /**
- * Tests for the etcd backend integration. You must have setCurrent a system property so, theses tests are executed, e.g.
+ * Tests for the etcd backend integration. You must have setCurrent a system
+ * property so, theses tests are executed, e.g.
  * {@code -Detcd.url=http://127.0.0.1:4001}.
  */
 public class EtcdAccessorTest {
@@ -38,12 +39,16 @@ public class EtcdAccessorTest {
 
     @BeforeClass
     public static void setup() throws MalformedURLException {
-        accessor = new EtcdAccessor("http://192.168.99.105:4001");
-        if (!accessor.getVersion().contains("etcd")) {
+        String servers = System.getProperty("etcd.server.urls");
+        if (servers != null) {
+            accessor = new EtcdAccessor(servers);
+            if (accessor.getVersion().contains("etcd")) {
+                execute = true;
+            }
+        }
+        if (!execute) {
             System.out.println("Disabling etcd tests, etcd not accessible at: " + System.getProperty("etcd.server.urls"));
             System.out.println("Configure etcd with -Detcd.server.urls=http://<IP>:<PORT>");
-        } else {
-            execute = true;
         }
     }
 
@@ -52,7 +57,7 @@ public class EtcdAccessorTest {
         if (!execute) {
             return;
         }
-        assertThat(accessor.getVersion()).isEqualTo("etcd 0.4.9");
+        assertThat(accessor.getVersion()).contains("etcd");
     }
 
     @Test
@@ -60,7 +65,7 @@ public class EtcdAccessorTest {
         if (!execute) {
             return;
         }
-        Map<String,String> result = accessor.get("test1");
+        Map<String, String> result = accessor.get("test1");
         assertThat(result).isNotNull();
     }
 
@@ -70,7 +75,7 @@ public class EtcdAccessorTest {
             return;
         }
         String value = UUID.randomUUID().toString();
-        Map<String,String> result = accessor.set("testSetNormal", value);
+        Map<String, String> result = accessor.set("testSetNormal", value);
         assertThat(result.get("_testSetNormal.ttl")).isNull();
         assertThat(value).isEqualTo(accessor.get("testSetNormal").get("testSetNormal"));
     }
@@ -81,7 +86,7 @@ public class EtcdAccessorTest {
             return;
         }
         String value = UUID.randomUUID().toString();
-        Map<String,String> result = accessor.set("testSetNormal2", value, null);
+        Map<String, String> result = accessor.set("testSetNormal2", value, null);
         assertThat(result.get("_testSetNormal2.ttl")).isNull();
         assertThat(value).isEqualTo(accessor.get("testSetNormal2").get("testSetNormal2"));
     }
@@ -92,7 +97,7 @@ public class EtcdAccessorTest {
             return;
         }
         String value = UUID.randomUUID().toString();
-        Map<String,String> result = accessor.set("testSetWithTTL", value, 1);
+        Map<String, String> result = accessor.set("testSetWithTTL", value, 1);
         assertThat(result.get("_testSetWithTTL.ttl")).isNotNull();
         assertThat(value).isEqualTo(accessor.get("testSetWithTTL").get("testSetWithTTL"));
         Thread.sleep(2000L);
@@ -106,11 +111,11 @@ public class EtcdAccessorTest {
             return;
         }
         String value = UUID.randomUUID().toString();
-        Map<String,String> result = accessor.set("testDelete", value, null);
+        Map<String, String> result = accessor.set("testDelete", value, null);
         assertThat(value).isEqualTo(accessor.get("testDelete").get("testDelete"));
         assertThat(result.get("_testDelete.createdIndex")).isNotNull();
         result = accessor.delete("testDelete");
-        assertThat(value).isEqualTo(result.get("_testDelete.prevNode.createValue"));
+        assertThat(value).isEqualTo(result.get("_testDelete.prevNode.value"));
         assertThat(accessor.get("testDelete").get("testDelete")).isNull();
     }
 
@@ -121,7 +126,7 @@ public class EtcdAccessorTest {
         }
         String value = UUID.randomUUID().toString();
         accessor.set("testGetProperties1", value);
-        Map<String,String> result = accessor.getProperties("");
+        Map<String, String> result = accessor.getProperties("");
         assertThat(result).isNotNull();
         assertThat(value).isEqualTo(result.get("testGetProperties1"));
         assertThat(result.get("_testGetProperties1.createdIndex")).isNotNull();
diff --git a/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdBackendConfigTest.java b/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdBackendConfigTest.java
index f28aee6..5855cdf 100644
--- a/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdBackendConfigTest.java
+++ b/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdBackendConfigTest.java
@@ -48,9 +48,13 @@ public class EtcdBackendConfigTest {
 
     @Test
     public void testEtcdServerProperty() throws Exception {
-        final String server = "http://localhost:4001";
+        final String server = System.getProperty("etcd.server.urls");
+        if (server == null){
+            return;
+        }
         try {
-            assertThat(EtcdBackendConfig.getServers()).contains("http://127.0.0.1:4001");
+            System.clearProperty("tamaya.etcd.server");
+            assertThat(EtcdBackendConfig.getServers()).contains("http://127.0.0.1:2379");  //the default
             System.setProperty("tamaya.etcd.server", server);
             assertThat(EtcdBackendConfig.getServers()).contains(server);
         } finally {
diff --git a/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdPropertySourceTest.java b/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdPropertySourceTest.java
index 1ec1ce7..d16fa49 100644
--- a/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdPropertySourceTest.java
+++ b/modules/etcd/src/test/java/org/apache/tamaya/etcd/EtcdPropertySourceTest.java
@@ -19,7 +19,6 @@
 package org.apache.tamaya.etcd;
 
 import org.apache.tamaya.spi.PropertyValue;
-import org.junit.BeforeClass;
 import org.junit.Test;
 
 import java.util.Map;
@@ -34,11 +33,6 @@ public class EtcdPropertySourceTest {
 
     private final EtcdPropertySource propertySource = new EtcdPropertySource();
 
-    @BeforeClass
-    public static void setup(){
-        System.setProperty("etcd.server.urls", "http://8.8.8.8:4001,http://192.168.99.105:4001");
-    }
-
     @Test
     public void testGetOrdinal() throws Exception {
         assertThat(1000).isEqualTo(propertySource.getOrdinal());
@@ -75,13 +69,13 @@ public class EtcdPropertySourceTest {
 
     @Test
     public void testPropertySourceConstructorParams() throws Exception {
-        EtcdPropertySource propertySource = new EtcdPropertySource("http://8.8.8.8:4001", "http://192.168.99.105:4001");
-        assertThat(propertySource.getProperties()).isNotNull();
+        EtcdPropertySource localpropertySource = new EtcdPropertySource("http://1.1.1.1:2379", "http://2.2.2.2:2379");
+        assertThat(localpropertySource.getProperties()).isNotNull();
     }
 
     @Test
     public void testPropertySourceConstructorList() throws Exception {
-        EtcdPropertySource propertySource = new EtcdPropertySource(asList("http://8.8.8.8:4001", "http://192.168.99.105:4001"));
-        assertThat(propertySource.getProperties()).isNotNull();
+        EtcdPropertySource localpropertySource = new EtcdPropertySource(asList("http://3.3.3.3:2379", "http://4.4.4.4:2379"));
+        assertThat(localpropertySource.getProperties()).isNotNull();
     }
 }
diff --git a/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONFormat.java b/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONFormat.java
index a145ad8..dd0c61e 100644
--- a/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONFormat.java
+++ b/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONFormat.java
@@ -41,15 +41,20 @@ import javax.json.JsonReaderFactory;
  * @see <a href="http://www.json.org">JSON format specification</a>
  */
 public class JSONFormat implements ConfigurationFormat {
-    /** Property that makes Johnzon accept comments. */
+
+    /**
+     * Property that makes Johnzon accept comments.
+     */
     public static final String JOHNZON_SUPPORTS_COMMENTS_PROP = "org.apache.johnzon.supports-comments";
-    /** The reader factory used. */
+    /**
+     * The reader factory used.
+     */
     private final JsonReaderFactory readerFactory;
 
     /**
      * Constructor, initializing the JSON reader factory.
      */
-    public JSONFormat(){
+    public JSONFormat() {
         Map<String, Object> config = new HashMap<>();
         config.put(JOHNZON_SUPPORTS_COMMENTS_PROP, true);
         this.readerFactory = Json.createReaderFactory(config);
@@ -66,14 +71,12 @@ public class JSONFormat implements ConfigurationFormat {
     }
 
     @Override
-    public ConfigurationData readConfiguration(String resource, InputStream inputStream)
-    throws IOException{
-        try{
-            final JsonReader reader = this.readerFactory.createReader(inputStream, Charset.forName("UTF-8"));
+    public ConfigurationData readConfiguration(String resource, InputStream inputStream) throws IOException {
+        try (JsonReader reader = this.readerFactory.createReader(inputStream, Charset.forName("UTF-8"))) {
             JsonObject root = reader.readObject();
             JSONDataBuilder dataBuilder = new JSONDataBuilder(resource, root);
             return new ConfigurationData(resource, this, dataBuilder.build());
-        } catch(Exception e) {
+        } catch (Exception e) {
             throw new IOException("Failed to read data from " + resource, e);
         }
     }
diff --git a/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONPropertySource.java b/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONPropertySource.java
index 39f2b95..a7fbd75 100644
--- a/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONPropertySource.java
+++ b/modules/formats/json/src/main/java/org/apache/tamaya/json/JSONPropertySource.java
@@ -38,46 +38,62 @@ import javax.json.JsonReaderFactory;
 import javax.json.JsonStructure;
 
 import static java.lang.String.format;
+import javax.json.JsonReader;
 
 /**
  * Property source based on a JSON file.
  */
 public class JSONPropertySource implements PropertySource {
-    /** Constant for enabling comments in Johnzon. */
+
+    /**
+     * Constant for enabling comments in Johnzon.
+     */
     public static final String JOHNZON_SUPPORTS_COMMENTS_PROP = "org.apache.johnzon.supports-comments";
 
-    /** The underlying resource. */
+    /**
+     * The underlying resource.
+     */
     private final URL urlResource;
-    /** The values read. */
+    /**
+     * The values read.
+     */
     private final Map<String, PropertyValue> values;
-    /** The evaluated ordinal. */
+    /**
+     * The evaluated ordinal.
+     */
     private int ordinal;
-    /** The JSON reader factory used. */
+    /**
+     * The JSON reader factory used.
+     */
     private JsonReaderFactory readerFactory = initReaderFactory();
 
-    /** Initializes the factory to be used for creating readers. */
+    /**
+     * Initializes the factory to be used for creating readers.
+     */
     private JsonReaderFactory initReaderFactory() {
         Map<String, Object> config = new HashMap<>();
         config.put(JOHNZON_SUPPORTS_COMMENTS_PROP, true);
-       return Json.createReaderFactory(config);
+        return Json.createReaderFactory(config);
     }
 
     /**
      * Constructor, hereby using 0 as the default ordinal.
+     *
      * @param resource the resource modelled as URL, not null.
      * @throws IOException if reading the resource fails.
      */
-    public JSONPropertySource(URL resource)throws IOException {
+    public JSONPropertySource(URL resource) throws IOException {
         this(resource, 0);
     }
 
     /**
      * Constructor.
+     *
      * @param resource the resource modelled as URL, not null.
      * @param defaultOrdinal the defaultOrdinal to be used.
      * @throws IOException if reading the resource fails.
      */
-    public JSONPropertySource(URL resource, int defaultOrdinal)throws IOException {
+    public JSONPropertySource(URL resource, int defaultOrdinal) throws IOException {
         urlResource = Objects.requireNonNull(resource);
         this.ordinal = defaultOrdinal; // may be overriden by read...
         this.values = readConfig(urlResource);
@@ -86,13 +102,12 @@ public class JSONPropertySource implements PropertySource {
         }
     }
 
-
     public int getOrdinal() {
         PropertyValue configuredOrdinal = get(TAMAYA_ORDINAL);
-        if(configuredOrdinal!=null){
-            try{
+        if (configuredOrdinal != null) {
+            try {
                 return Integer.parseInt(configuredOrdinal.getValue());
-            } catch(Exception e){
+            } catch (Exception e) {
                 Logger.getLogger(getClass().getName()).log(Level.WARNING,
                         "Configured Ordinal is not an int number: " + configuredOrdinal, e);
             }
@@ -118,25 +133,28 @@ public class JSONPropertySource implements PropertySource {
 
     /**
      * Reads the configuration.
+     *
      * @param urlResource soure of the configuration.
      * @return the configuration read from the given resource URL.
      * @throws ConfigException if resource URL cannot be read.
      * @throws IOException if reading the urlResource fails.
      */
-    protected Map<String, PropertyValue> readConfig(URL urlResource) throws IOException{
+    protected Map<String, PropertyValue> readConfig(URL urlResource) throws IOException {
         try (InputStream is = urlResource.openStream()) {
-            JsonStructure root = this.readerFactory.createReader(is, StandardCharsets.UTF_8).read();
-
-            JSONDataBuilder visitor = new JSONDataBuilder(urlResource.toString(), root);
-            Map<String, String> values = visitor.build().toMap();
-            Map<String, PropertyValue> result = new HashMap<>();
-            for(Map.Entry<String,String> en:values.entrySet()){
-                result.put(en.getKey(), PropertyValue.createValue(en.getKey(), en.getValue()).setMeta("source", getName()));
+            try (JsonReader reader = this.readerFactory.createReader(is, StandardCharsets.UTF_8)) {
+                JsonStructure root = reader.read();
+
+                JSONDataBuilder visitor = new JSONDataBuilder(urlResource.toString(), root);
+                Map<String, String> values = visitor.build().toMap();
+                Map<String, PropertyValue> result = new HashMap<>();
+                for (Map.Entry<String, String> en : values.entrySet()) {
+                    result.put(en.getKey(), PropertyValue.createValue(en.getKey(), en.getValue()).setMeta("source", getName()));
+                }
+                return result;
             }
-            return result;
-        }catch(IOException ioe){
+        } catch (IOException ioe) {
             throw ioe;
-        }catch (Exception t) {
+        } catch (Exception t) {
             throw new IOException(format("Failed to read properties from %s", urlResource.toExternalForm()), t);
         }
     }
diff --git a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
index b0ef112..2068d34 100644
--- a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
+++ b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
@@ -102,14 +102,14 @@ public final class InjectionUtils {
             try {
                 keyResolver = sectionAnnot.keyResolver().getDeclaredConstructor().newInstance();
             } catch (Exception e) {
-                LOG.log(Level.SEVERE, "Cannot create KeyResolver: " + sectionAnnot.keyResolver().getName(), e);
+                LOG.log(Level.SEVERE, "Cannot create KeyResolver from section resolver: " + sectionAnnot.keyResolver().getName(), e);
             }
         }
         if(configAnnot!=null && !configAnnot.keyResolver().equals(KeyResolver.class)){
             try {
                 keyResolver = configAnnot.keyResolver().getDeclaredConstructor().newInstance();
             } catch (Exception e) {
-                LOG.log(Level.SEVERE, "Cannot create KeyResolver: " + sectionAnnot.keyResolver().getName(), e);
+                LOG.log(Level.SEVERE, "Cannot create KeyResolver from config resolver: " + configAnnot.keyResolver().getName(), e);
             }
         }
         List<String> alternateKeys = new ArrayList<>();
@@ -134,14 +134,14 @@ public final class InjectionUtils {
             try {
                 keyResolver = sectionAnnot.keyResolver().getDeclaredConstructor().newInstance();
             } catch (Exception e) {
-                LOG.log(Level.SEVERE, "Cannot create KeyResolver: " + sectionAnnot.keyResolver().getName(), e);
+                LOG.log(Level.SEVERE, "Cannot create KeyResolver from section resolver: " + sectionAnnot.keyResolver().getName(), e);
             }
         }
         if(configAnnot!=null && !configAnnot.keyResolver().equals(KeyResolver.class)){
             try {
                 keyResolver = configAnnot.keyResolver().getDeclaredConstructor().newInstance();
             } catch (Exception e) {
-                LOG.log(Level.SEVERE, "Cannot create KeyResolver: " + sectionAnnot.keyResolver().getName(), e);
+                LOG.log(Level.SEVERE, "Cannot create KeyResolver from config resolver: " + configAnnot.keyResolver().getName(), e);
             }
         }
         List<String> alternateKeys = new ArrayList<>();
diff --git a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
index a057708..3f1d600 100644
--- a/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
+++ b/modules/injection/standalone/src/main/java/org/apache/tamaya/inject/internal/InjectionHelper.java
@@ -156,7 +156,7 @@ final class InjectionHelper {
         Class<? extends PropertyConverter<T>> converterType;
         if (converterAnnot != null) {
             converterType = (Class<? extends PropertyConverter<T>>) converterAnnot.value();
-            if (!converterType.getName().equals(WithPropertyConverter.class.getName())) {
+            if (!converterType.isAssignableFrom(WithPropertyConverter.class)) {
                 try {
                 // TODO cache here...
                     ConversionContext ctx = new ConversionContext.Builder(key,targetType)
diff --git a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
index 04f6132..92f8666 100644
--- a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
+++ b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/MicroprofileConfig.java
@@ -24,9 +24,6 @@ import org.apache.tamaya.spi.PropertySource;
 import org.eclipse.microprofile.config.Config;
 import org.eclipse.microprofile.config.spi.ConfigSource;
 
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.io.Serializable;
 import java.util.*;
 
@@ -84,13 +81,4 @@ public class MicroprofileConfig implements Config, Serializable {
                 "delegate=" + delegate +
                 '}';
     }
-
-    private void writeObject(ObjectOutputStream out) throws IOException {
-        out.writeObject(this.delegate.getSnapshot());
-    }
-
-    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
-        this.delegate = (Configuration) in.readObject();
-    }
-
 }
diff --git a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
index 8f292bb..f7ef8b7 100644
--- a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
+++ b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/BooleanAsIntegerConverterFix.java
@@ -48,6 +48,9 @@ public class BooleanAsIntegerConverterFix implements PropertyConverter<Boolean>
 
     @Override
     public boolean equals(Object o){
+        if (o == null){
+            return false;
+        }
         return getClass().equals(o.getClass());
     }
 
diff --git a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
index b6d1c05..f779b96 100644
--- a/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
+++ b/modules/microprofile/src/main/java/org/apache/tamaya/microprofile/converter/ProviderConverter.java
@@ -59,6 +59,9 @@ public class ProviderConverter implements PropertyConverter<Provider> {
 
     @Override
     public boolean equals(Object o) {
+        if (o == null){
+            return false;
+        }
         return getClass().equals(o.getClass());
     }
 
diff --git a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/Backups.java b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/Backups.java
index 57e94a0..472bb7e 100644
--- a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/Backups.java
+++ b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/Backups.java
@@ -36,7 +36,7 @@ final class Backups {
 
     private static final Logger LOG = Logger.getLogger(Backups.class.getName());
     public static final String TAMAYA_BACKUP = "tamaya.backup";
-    private static Map<String, Hashtable<String, ?>> initialConfigState = new ConcurrentHashMap<>();
+    private static ConcurrentHashMap<String, Hashtable<String, ?>> initialConfigState = new ConcurrentHashMap<>();
 
     private Backups() {
     }
@@ -158,7 +158,7 @@ final class Backups {
             if (serialized != null) {
                 ByteArrayInputStream bis = new ByteArrayInputStream(Base64.getDecoder().decode(serialized));
                 ObjectInputStream ois = new ObjectInputStream(bis);
-                initialConfigState = (Map<String, Hashtable<String, ?>>) ois.readObject();
+                initialConfigState = (ConcurrentHashMap<String, Hashtable<String, ?>>) ois.readObject();
                 ois.close();
             }
         } catch (Exception e) {
diff --git a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java
index d8a4fa0..c0dd459 100644
--- a/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java
+++ b/modules/osgi/common/src/main/java/org/apache/tamaya/osgi/ConfigHistory.java
@@ -52,7 +52,7 @@ public final class ConfigHistory implements Serializable {
     /**
      * The overall history.
      */
-    private static List<ConfigHistory> history = new LinkedList<>();
+    private static LinkedList<ConfigHistory> history = new LinkedList<>();
 
     /**
      * The entry timestamp.
@@ -285,7 +285,7 @@ public final class ConfigHistory implements Serializable {
             if (serialized != null) {
                 ByteArrayInputStream bis = new ByteArrayInputStream(Base64.getDecoder().decode(serialized));
                 ObjectInputStream ois = new ObjectInputStream(bis);
-                ConfigHistory.history = (List<ConfigHistory>) ois.readObject();
+                ConfigHistory.history = (LinkedList<ConfigHistory>) ois.readObject();
                 ois.close();
             }
         } catch (Exception e) {


[incubator-tamaya-extensions] 02/02: TAMAYA-394 Sonar vulns

Posted by wl...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

wlieurance pushed a commit to branch TAMAYA-394-sonar-errors
in repository https://gitbox.apache.org/repos/asf/incubator-tamaya-extensions.git

commit 82f76b7c99411afef3683ea948a06bb923b51da5
Author: William Lieurance <wi...@namikoda.com>
AuthorDate: Thu Jun 13 22:38:08 2019 -0500

    TAMAYA-394 Sonar vulns
---
 .../examples/distributed/ContentManagerPanel.java  |  8 +-
 .../tamaya/examples/distributed/Display.java       | 16 ++--
 .../examples/distributed/DisplayContent.java       | 94 +++++++++++++++++++---
 .../examples/distributed/DisplayManager.java       | 10 +--
 .../examples/distributed/DisplayContentTest.java   |  6 +-
 5 files changed, 101 insertions(+), 33 deletions(-)

diff --git a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/ContentManagerPanel.java b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/ContentManagerPanel.java
index 5972396..41e4e23 100644
--- a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/ContentManagerPanel.java
+++ b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/ContentManagerPanel.java
@@ -72,10 +72,10 @@ class ContentManagerPanel extends VBox{
             if(selection!=null){
                 String uuid = selection.split("::")[1];
                 DisplayContent content = new DisplayContent();
-                content.content.put(Display.CONTENT_FIELD, contentField.getText());
-                content.title = titleField.getText();
-                content.displayId = uuid;
-                content.displayName = displayNameField.getText();
+                content.getContent().put(Display.CONTENT_FIELD, contentField.getText());
+                content.setTitle(titleField.getText());
+                content.setDisplayId(uuid);
+                content.setDisplayName(displayNameField.getText());
                 vertx.eventBus().publish(Display.DISPLAY_SHOW_TOPIC, Json.encode(content));
             }
         });
diff --git a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/Display.java b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/Display.java
index ba0e8db..cd8e178 100644
--- a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/Display.java
+++ b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/Display.java
@@ -108,7 +108,7 @@ public class Display extends Application{
             try {
                 Thread.sleep(100L);
             } catch (InterruptedException e) {
-                e.printStackTrace();
+                LOG.severe("Vertx cluster did not respond in time.");
                 Thread.currentThread().interrupt();
             }
         }
@@ -160,16 +160,14 @@ public class Display extends Application{
         vertx.eventBus().consumer(DISPLAY_SHOW_TOPIC, h -> {
             DisplayContent content = Json.decodeValue((String)h.body(), DisplayContent.class);
             logToMonitor("NEW CONTENT: " + content.toString());
-            if(registration.getId().equals(content.displayId)) {
+            if(registration.getId().equals(content.getDisplayId())) {
                 logToMonitor("Applying content: " + content + "...");
-                titleField.setText(content.title);
-                contentField.setText(content.content.get(CONTENT_FIELD));
-                if(content.displayName!=null) {
-                    this.registration.setDisplayName(
-                            content.displayName
-                    );
+                titleField.setText(content.getTitle());
+                contentField.setText(content.getContent().get(CONTENT_FIELD));
+                if(content.getDisplayName()!=null) {
+                    this.registration.setDisplayName(content.getDisplayName());
                     Platform.runLater(() -> {
-                        this.stage.setTitle(content.displayName);
+                        this.stage.setTitle(content.getDisplayName());
                     });
                 }
                 logToMonitor("SUCCESS.");
diff --git a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayContent.java b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayContent.java
index 2a48630..57e7f22 100644
--- a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayContent.java
+++ b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayContent.java
@@ -27,11 +27,11 @@ import java.util.Objects;
  * Created by atsticks on 13.11.16.
  */
 public class DisplayContent {
-    public String displayId;
-    public String title = "UNKNOWN";
-    public Map<String,String> content = new HashMap<>();
-    public long timestamp = System.currentTimeMillis();
-    public String displayName;
+    private String displayId;
+    private String title = "UNKNOWN";
+    private Map<String,String> content = new HashMap<>();
+    private long timestamp = System.currentTimeMillis();
+    private String displayName;
 
     @Override
     public boolean equals(Object o) {
@@ -42,22 +42,92 @@ public class DisplayContent {
             return false;
         }
         DisplayContent that = (DisplayContent) o;
-        return timestamp == that.timestamp &&
-                Objects.equals(displayId, that.displayId) &&
-                Objects.equals(title, that.title);
+        return getTimestamp() == that.getTimestamp() &&
+                Objects.equals(getDisplayId(), that.getDisplayId()) &&
+                Objects.equals(getTitle(), that.getTitle());
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(displayId, title, timestamp);
+        return Objects.hash(getDisplayId(), getTitle(), getTimestamp());
     }
 
     @Override
     public String toString() {
         return "DisplayContent{" +
-                "displayId='" + displayId + '\'' +
-                ", title='" + title + '\'' +
-                ", content=" + content +
+                "displayId='" + getDisplayId() + '\'' +
+                ", title='" + getTitle() + '\'' +
+                ", content=" + getContent() +
                 '}';
     }
+
+    /**
+     * @return the displayId
+     */
+    public String getDisplayId() {
+        return displayId;
+    }
+
+    /**
+     * @param displayId the displayId to set
+     */
+    public void setDisplayId(String displayId) {
+        this.displayId = displayId;
+    }
+
+    /**
+     * @return the title
+     */
+    public String getTitle() {
+        return title;
+    }
+
+    /**
+     * @param title the title to set
+     */
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    /**
+     * @return the content
+     */
+    public Map<String,String> getContent() {
+        return content;
+    }
+
+    /**
+     * @param content the content to set
+     */
+    public void setContent(Map<String,String> content) {
+        this.content = content;
+    }
+
+    /**
+     * @return the timestamp
+     */
+    public long getTimestamp() {
+        return timestamp;
+    }
+
+    /**
+     * @param timestamp the timestamp to set
+     */
+    public void setTimestamp(long timestamp) {
+        this.timestamp = timestamp;
+    }
+
+    /**
+     * @return the displayName
+     */
+    public String getDisplayName() {
+        return displayName;
+    }
+
+    /**
+     * @param displayName the displayName to set
+     */
+    public void setDisplayName(String displayName) {
+        this.displayName = displayName;
+    }
 }
diff --git a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayManager.java b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayManager.java
index b5cf2a2..1eca9fb 100644
--- a/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayManager.java
+++ b/examples/06-distributed/src/main/java/org/apache/tamaya/examples/distributed/DisplayManager.java
@@ -95,7 +95,7 @@ public class DisplayManager extends Application{
             try {
                 Thread.sleep(100L);
             } catch (InterruptedException e) {
-                e.printStackTrace();
+                LOG.severe("Vertx cluster did not respond in time.");
                 Thread.currentThread().interrupt();
             }
         }
@@ -125,10 +125,10 @@ public class DisplayManager extends Application{
             logToMonitor("NEW CONTENT: " + content.toString());
             logToMonitor("Updating config for content: " + content + "...");
             MutableConfiguration config = MutableConfiguration.create();
-            String id = content.displayId;
-            config.put("displays."+id+".title", content.title);
-            config.put("displays."+id+".timestamp", String.valueOf(content.timestamp));
-            config.put("displays."+id+".content.content", content.content.get(CONTENT_FIELD));
+            String id = content.getDisplayId();
+            config.put("displays."+id+".title", content.getTitle());
+            config.put("displays."+id+".timestamp", String.valueOf(content.getTimestamp()));
+            config.put("displays."+id+".content.content", content.getContent().get(CONTENT_FIELD));
             config.store();
             logToMonitor("UPDATED.");
         });
diff --git a/examples/06-distributed/src/test/java/org/apache/tamaya/examples/distributed/DisplayContentTest.java b/examples/06-distributed/src/test/java/org/apache/tamaya/examples/distributed/DisplayContentTest.java
index b052cc1..9b3bf4c 100644
--- a/examples/06-distributed/src/test/java/org/apache/tamaya/examples/distributed/DisplayContentTest.java
+++ b/examples/06-distributed/src/test/java/org/apache/tamaya/examples/distributed/DisplayContentTest.java
@@ -36,9 +36,9 @@ public class DisplayContentTest {
     @org.junit.Test
     public void testJson() throws Exception {
         DisplayContent content = new DisplayContent();
-        content.displayId = "1234";
-        content.title = "myTitle";
-        content.content.put("content", "myContent");
+        content.setDisplayId("1234");
+        content.setTitle("myTitle");
+        content.getContent().put("content", "myContent");
         String val = Json.encode(content);
         DisplayContent decoded = Json.decodeValue(val, DisplayContent.class);
         assertThat(decoded).isNotNull();