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:22 UTC
[incubator-tamaya-extensions] 01/02: TAMAYA-394 Sonar bugs
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) {