Add option to use Hazelcast as datastore for development environment.
This patch will set the default backend as Hazelcast.
To use RAMCloud as backend data store, add -Dnet.onrc.onos.datastore.backend=ramcloud to java option.
- ClientMode: Use existing Hazelcast Instance if it exist.
- map name starting with datastore:// is now configured to be strong consistent
- add main for manual testing
- follow PMD,etc. where easily possible
- make HZClient Singleton
Change-Id: Ibe2afc3bfddfd7fd567c91477c16cd679fc543d4
diff --git a/src/main/java/net/onrc/onos/datastore/DataStoreClient.java b/src/main/java/net/onrc/onos/datastore/DataStoreClient.java
index 88daa8e..6aeb49e 100644
--- a/src/main/java/net/onrc/onos/datastore/DataStoreClient.java
+++ b/src/main/java/net/onrc/onos/datastore/DataStoreClient.java
@@ -1,10 +1,26 @@
package net.onrc.onos.datastore;
+import net.onrc.onos.datastore.hazelcast.HZClient;
import net.onrc.onos.datastore.ramcloud.RCClient;
+// This class probably need to be a service
public class DataStoreClient {
+ private static final String BACKEND = System.getProperty("net.onrc.onos.datastore.backend", "hazelcast");
+
+ // Suppresses default constructor, ensuring non-instantiability.
+ private DataStoreClient() {}
+
public static IKVClient getClient() {
// TODO read config and return appropriate IKVClient
- return RCClient.getClient();
+ switch (BACKEND) {
+ case "ramcloud":
+ return RCClient.getClient();
+ case "hazelcast":
+ return HZClient.getClient();
+ default:
+ return HZClient.getClient();
+ }
}
+
+
}