Remove Hazelcast client mode behavior.

We no longer need this as result of 448bca02e5bf9c1a00450733203ae1251433daed

Change-Id: I26d1a683d9ca3ee257a5ca50cac22ac762e07e3e
diff --git a/pom.xml b/pom.xml
index 7f75b9d..6b0b2a1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -525,12 +525,6 @@
       <version>${hazelcast.version}</version>
     </dependency>
     <dependency>
-      <!-- Required for backend datastore as Hazelcast -->
-      <groupId>com.hazelcast</groupId>
-      <artifactId>hazelcast-client</artifactId>
-      <version>${hazelcast.version}</version>
-    </dependency>
-    <dependency>
       <groupId>javax.websocket</groupId>
       <artifactId>javax.websocket-api</artifactId>
       <version>1.0</version>
diff --git a/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZClient.java b/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZClient.java
index f725248..5398eb8 100644
--- a/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZClient.java
+++ b/src/main/java/net/onrc/onos/core/datastore/hazelcast/HZClient.java
@@ -1,6 +1,5 @@
 package net.onrc.onos.core.datastore.hazelcast;
 
-import java.io.FileNotFoundException;
 import java.util.Collection;
 import java.util.List;
 
@@ -18,17 +17,10 @@
 import net.onrc.onos.core.datastore.hazelcast.HZTable.VersionedValue;
 import net.onrc.onos.core.datastore.internal.IModifiableMultiEntryOperation;
 import net.onrc.onos.core.datastore.utils.ByteArrayUtil;
-import net.onrc.onos.core.util.serializers.HazelcastSerializationConstants;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.hazelcast.client.HazelcastClient;
-import com.hazelcast.client.config.ClientConfig;
 import com.hazelcast.config.Config;
-import com.hazelcast.config.FileSystemXmlConfig;
-import com.hazelcast.config.MapConfig;
-import com.hazelcast.config.SerializationConfig;
 import com.hazelcast.core.Hazelcast;
 import com.hazelcast.core.HazelcastInstance;
 import com.hazelcast.core.IAtomicLong;
@@ -46,15 +38,6 @@
 
     private static final String BASE_CONFIG_FILENAME =
             System.getProperty("net.onrc.onos.core.datastore.hazelcast.baseConfig", "conf/hazelcast.xml");
-    private static final String HAZELCAST_DEFAULT_XML = "conf/hazelcast.default.xml";
-
-    // XXX Remove this mode at some point
-    private static boolean useClientMode = Boolean.parseBoolean(
-            System.getProperty("net.onrc.onos.core.datastore.hazelcast.clientMode", "true"));
-
-    // Note: xml configuration will overwrite this value if present
-    private static int backupCount = Integer.parseInt(
-            System.getProperty("net.onrc.onos.core.datastore.hazelcast.backupCount", "3"));
 
     private final HazelcastInstance hazelcastInstance;
 
@@ -77,122 +60,10 @@
     private HZClient() {
         Config config = HazelcastDatagrid.loadHazelcastConfig(BASE_CONFIG_FILENAME);
         // Try to get the existing HZ instance in JVM if possible.
-        HazelcastInstance instance = Hazelcast.getOrCreateHazelcastInstance(config);
-        if (instance == null) {
-            log.error("Failed to get the Hazelcast instance in JVM. "
-                    + "Probably DataStoreClient was requested before "
-                    + "IDatagridService was started "
-                    + "or running as part of unit tests. "
-                    + "Creating instance on it's own.");
-            instance = getFallbackHZinstance(BASE_CONFIG_FILENAME);
-        }
-        hazelcastInstance = instance;
+        hazelcastInstance = Hazelcast.getOrCreateHazelcastInstance(config);
     }
 
     /**
-     * Get or create the hazelcast instance to use for datastore, when existing
-     * Hazelcast instance cannot be retrieved.
-     * <p/>
-     *
-     * @param hazelcastConfigFileName Hazelcast configuration to use when creating a
-     * @return HazelcastInstance to use for datastore
-     */
-    private static HazelcastInstance getFallbackHZinstance(final String hazelcastConfigFileName) {
-        Config baseHzConfig = null;
-        try {
-            baseHzConfig = new FileSystemXmlConfig(hazelcastConfigFileName);
-        } catch (FileNotFoundException e) {
-            log.error("Error opening Hazelcast XML configuration. File not found: " + hazelcastConfigFileName, e);
-            // Fallback mechanism to support running unit test without setup.
-            log.error("Falling back to default Hazelcast XML {}", HAZELCAST_DEFAULT_XML);
-            try {
-                baseHzConfig = new FileSystemXmlConfig(HAZELCAST_DEFAULT_XML);
-            } catch (FileNotFoundException e2) {
-                log.error("Error opening fall back Hazelcast XML configuration. "
-                        + "File not found: " + HAZELCAST_DEFAULT_XML, e2);
-
-                // intentionally throwing Exception "e" thrown from non-fallback
-                // Hazelcast configuration loading.
-                throw new IllegalStateException("Cannot find Hazelcast configuration: " + hazelcastConfigFileName, e);
-            }
-        }
-
-        // use xml config if present, if not use System.property
-        MapConfig mapConfig = baseHzConfig.getMapConfigs().get(MAP_PREFIX + "*");
-        if (mapConfig != null) {
-            backupCount = mapConfig.getBackupCount();
-        }
-
-        HazelcastInstance instance = null;
-        // TODO Client mode should be removed at some point.
-        // we can get HZ instance used by ONOS using getHazelcastInstanceByName
-        if (useClientMode) {
-            log.info("Configuring Hazelcast datastore as Client mode");
-            ClientConfig clientConfig = new ClientConfig();
-            final int port = baseHzConfig.getNetworkConfig().getPort();
-
-            String server = System.getProperty("net.onrc.onos.core.datastore.hazelcast.client.server", "localhost");
-            clientConfig.getNetworkConfig().addAddress(server + ":" + port);
-
-            // client mode connection limit.
-            // set to 0 for fast fall back to Instance mode.
-            String sAttempts = System.getProperty("net.onrc.onos.core.datastore.hazelcast.client.attemptLimit");
-            if (sAttempts != null) {
-                clientConfig.getNetworkConfig().setConnectionAttemptLimit(Integer.parseInt(sAttempts));
-            }
-
-            // copy group config from base Hazelcast configuration
-            clientConfig.getGroupConfig().setName(baseHzConfig.getGroupConfig().getName());
-            clientConfig.getGroupConfig().setPassword(baseHzConfig.getGroupConfig().getPassword());
-
-            // TODO We probably need to figure out what else need to be
-            // derived from baseConfig
-
-            registerSerializer(clientConfig.getSerializationConfig());
-
-            log.info("Starting Hazelcast datastore client for [{}]", clientConfig.getNetworkConfig().getAddresses());
-
-            try {
-                instance = HazelcastClient.newHazelcastClient(clientConfig);
-                if (!instance.getCluster().getMembers().isEmpty()) {
-                    log.debug("Members in cluster: " + instance.getCluster().getMembers());
-                    return instance;
-                }
-                log.info("Failed to find cluster member, falling back to Instance mode");
-            } catch (IllegalStateException e) {
-                log.info("Failed to initialize HazelcastClient, falling back to Instance mode");
-            }
-            useClientMode = false;
-            instance = null;
-        }
-        log.info("Configuring Hazelcast datastore as Instance mode");
-
-        // To run 2 Hazelcast instance in 1 JVM,
-        // we probably need to something like below
-        //int port = hazelcastConfig.getNetworkConfig().getPort();
-        //hazelcastConfig.getNetworkConfig().setPort(port+1);
-
-        registerSerializer(baseHzConfig.getSerializationConfig());
-
-        return Hazelcast.newHazelcastInstance(baseHzConfig);
-    }
-
-    /**
-     * Register serializer for VersionedValue class used to imitate value version.
-     *
-     * @param config SerializationConfig to add VersionedValueSerializableFactory.
-     */
-    private static void registerSerializer(final SerializationConfig config) {
-        // TODO remove this function at some point.
-        // This method is no longer required, if equibalent to the following
-        // is defined in hazelcast.xml
-        config.addDataSerializableFactoryClass(
-                HazelcastSerializationConstants.VERSIONED_VALUE_SERIALIZABLE_FACTORY_ID,
-                VersionedValueSerializableFactory.class);
-    }
-
-
-    /**
      * Gets the HazelcastInstance object.
      *
      * @return HazelcastInstance
@@ -205,24 +76,6 @@
     public IKVTable getTable(final String tableName) {
         IMap<byte[], VersionedValue> map = hazelcastInstance.getMap(MAP_PREFIX + tableName);
 
-        if (!useClientMode) {
-            // config only available in Instance Mode
-            // Client Mode must rely on hazelcast.xml to be properly configured.
-            MapConfig config = hazelcastInstance.getConfig().getMapConfig(MAP_PREFIX + tableName);
-            // config for this map to be strong consistent
-            if (config.isReadBackupData()) {
-                config.setReadBackupData(false);
-            }
-            if (config.isNearCacheEnabled()) {
-                config.getNearCacheConfig().setMaxSize(0);
-            }
-
-            if (config.getBackupCount() != backupCount) {
-                config.setAsyncBackupCount(0);
-                config.setBackupCount(backupCount);
-            }
-        }
-
         return new HZTable(tableName, map);
     }
 
diff --git a/src/test/java/net/onrc/onos/apps/proxyarp/ArpCacheTest.java b/src/test/java/net/onrc/onos/apps/proxyarp/ArpCacheTest.java
index 9003bc6..b641e98 100644
--- a/src/test/java/net/onrc/onos/apps/proxyarp/ArpCacheTest.java
+++ b/src/test/java/net/onrc/onos/apps/proxyarp/ArpCacheTest.java
@@ -18,11 +18,6 @@
 
 public class ArpCacheTest {
 
-    static {
-        // configuration to quickly fall back to instance mode for faster test run
-        System.setProperty("net.onrc.onos.core.datastore.hazelcast.client.attemptLimit", "0");
-    }
-
     private static final int SHORTENED_TIMEOUT_MS = 500;
 
     ArpCache arpCache;
diff --git a/src/test/java/net/onrc/onos/apps/proxyarp/ProxyArpManagerTest.java b/src/test/java/net/onrc/onos/apps/proxyarp/ProxyArpManagerTest.java
index 29bb95a..901a14e 100644
--- a/src/test/java/net/onrc/onos/apps/proxyarp/ProxyArpManagerTest.java
+++ b/src/test/java/net/onrc/onos/apps/proxyarp/ProxyArpManagerTest.java
@@ -55,11 +55,6 @@
 @SuppressWarnings({ "rawtypes", "unchecked" })
 public class ProxyArpManagerTest {
 
-    static {
-        // configuration to quickly fall back to instance mode for faster test run
-        System.setProperty("net.onrc.onos.core.datastore.hazelcast.client.attemptLimit", "0");
-    }
-
     String defaultStrAgingMsec = "60000";
     String defaultStrCleanupMsec = "60000";
 
diff --git a/src/test/java/net/onrc/onos/core/datastore/AtomicCounterTest.java b/src/test/java/net/onrc/onos/core/datastore/AtomicCounterTest.java
index c2d4aa3..1de9322 100644
--- a/src/test/java/net/onrc/onos/core/datastore/AtomicCounterTest.java
+++ b/src/test/java/net/onrc/onos/core/datastore/AtomicCounterTest.java
@@ -22,11 +22,6 @@
 
 public class AtomicCounterTest {
 
-    static {
-        // configuration to quickly fall back to instance mode for faster test run
-        System.setProperty("net.onrc.onos.core.datastore.hazelcast.client.attemptLimit", "0");
-    }
-
     private static final String TEST_COUNTER = "TestCounter" + UUID.randomUUID();
     private static final byte[] LONG_ZERO = {0, 0, 0, 0, 0, 0, 0, 0}; // 0L
     private IKVTableID counterID;
diff --git a/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZDistributedAtomicLongTest.java b/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZDistributedAtomicLongTest.java
index fbfc058..4813672 100644
--- a/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZDistributedAtomicLongTest.java
+++ b/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZDistributedAtomicLongTest.java
@@ -25,10 +25,6 @@
  * Test cases for HZDistributedAtomicLong.
  */
 public class HZDistributedAtomicLongTest {
-    static {
-        // configuration to quickly fall back to instance mode for faster test run
-        System.setProperty("net.onrc.onos.core.datastore.hazelcast.client.attemptLimit", "0");
-    }
 
     static final String TEST_COUNTER_NAME = "Counter" + UUID.randomUUID();
 
diff --git a/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZTableTest.java b/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZTableTest.java
index 3f43e38..f1e157d 100644
--- a/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZTableTest.java
+++ b/src/test/java/net/onrc/onos/core/datastore/hazelcast/HZTableTest.java
@@ -31,11 +31,6 @@
     @Rule
     public TestName name = new TestName();
 
-    static {
-        // configuration to quickly fall back to instance mode for faster test run
-        System.setProperty("net.onrc.onos.core.datastore.hazelcast.client.attemptLimit", "0");
-    }
-
     static final String TEST_TABLE_NAME = "TableForUnitTest" + UUID.randomUUID();
     HZTable table;
 
diff --git a/src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchTest.java b/src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchTest.java
index bbef22e..a62ce61 100644
--- a/src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchTest.java
+++ b/src/test/java/net/onrc/onos/core/datastore/topology/KVSwitchTest.java
@@ -27,11 +27,6 @@
 
     private static final Logger log = LoggerFactory.getLogger(KVSwitchTest.class);
 
-    static {
-        // configuration to quickly fall back to instance mode for faster test run
-        System.setProperty("net.onrc.onos.core.datastore.hazelcast.client.attemptLimit", "0");
-    }
-
     private static final String NAMESPACE = UUID.randomUUID().toString();
 
     IKVTable switchTable;
diff --git a/src/test/java/net/onrc/onos/core/datastore/topology/KVTopologyTest.java b/src/test/java/net/onrc/onos/core/datastore/topology/KVTopologyTest.java
index 0085e09..e934ed0 100644
--- a/src/test/java/net/onrc/onos/core/datastore/topology/KVTopologyTest.java
+++ b/src/test/java/net/onrc/onos/core/datastore/topology/KVTopologyTest.java
@@ -39,11 +39,6 @@
 
     private static final Logger log = LoggerFactory.getLogger(KVTopologyTest.class);
 
-    static {
-        // configuration to quickly fall back to instance mode for faster test run
-        System.setProperty("net.onrc.onos.core.datastore.hazelcast.client.attemptLimit", "0");
-    }
-
     static final long VERSION_NONEXISTENT = DataStoreClient.getClient().getVersionNonexistant();
 
     private static final byte[] DEVICE2_MAC_SW2P2 = new byte[]{6, 5, 4, 3, 2, 1, 0};
diff --git a/src/test/java/net/onrc/onos/core/util/distributed/sharedlog/example/LogAtomicLongTest.java b/src/test/java/net/onrc/onos/core/util/distributed/sharedlog/example/LogAtomicLongTest.java
index 91fd2be..cd94eba 100644
--- a/src/test/java/net/onrc/onos/core/util/distributed/sharedlog/example/LogAtomicLongTest.java
+++ b/src/test/java/net/onrc/onos/core/util/distributed/sharedlog/example/LogAtomicLongTest.java
@@ -23,12 +23,6 @@
  */
 public class LogAtomicLongTest {
 
-    static {
-        // configuration to quickly fall back to instance mode for faster test run
-        System.setProperty("net.onrc.onos.core.datastore.hazelcast.client.attemptLimit", "0");
-    }
-
-
     private LogAtomicLong along;
 
     /**