Enhanced a number of the test scripts and replaced hazelcast.xml with a mildly augmented version of the 3.3 one.
diff --git a/core/api/src/main/java/org/onlab/onos/cluster/MastershipProvider.java b/core/api/src/main/java/org/onlab/onos/cluster/MastershipProvider.java
index 01d91d6..69376cf 100644
--- a/core/api/src/main/java/org/onlab/onos/cluster/MastershipProvider.java
+++ b/core/api/src/main/java/org/onlab/onos/cluster/MastershipProvider.java
@@ -1,6 +1,5 @@
 package org.onlab.onos.cluster;
 
-import org.onlab.onos.net.MastershipRole;
 import org.onlab.onos.net.provider.Provider;
 
 /**
diff --git a/core/store/src/main/java/org/onlab/onos/store/impl/StoreManager.java b/core/store/src/main/java/org/onlab/onos/store/impl/StoreManager.java
index 2725175..cfb80a0 100644
--- a/core/store/src/main/java/org/onlab/onos/store/impl/StoreManager.java
+++ b/core/store/src/main/java/org/onlab/onos/store/impl/StoreManager.java
@@ -1,5 +1,7 @@
 package org.onlab.onos.store.impl;
 
+import com.hazelcast.config.Config;
+import com.hazelcast.config.FileSystemXmlConfig;
 import com.hazelcast.core.Hazelcast;
 import com.hazelcast.core.HazelcastInstance;
 import de.javakaffee.kryoserializers.URISerializer;
@@ -25,6 +27,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.FileNotFoundException;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -36,6 +39,8 @@
 @Service
 public class StoreManager implements StoreService {
 
+    private static final String HAZELCAST_XML_FILE = "etc/hazelcast.xml";
+
     private final Logger log = LoggerFactory.getLogger(getClass());
 
     protected HazelcastInstance instance;
@@ -44,9 +49,14 @@
 
     @Activate
     public void activate() {
-        instance = Hazelcast.newHazelcastInstance();
-        setupKryoPool();
-        log.info("Started");
+        try {
+            Config config = new FileSystemXmlConfig(HAZELCAST_XML_FILE);
+            instance = Hazelcast.newHazelcastInstance(config);
+            setupKryoPool();
+            log.info("Started");
+        } catch (FileNotFoundException e) {
+            log.error("Unable to configure Hazelcast", e);
+        }
     }
 
     /**
diff --git a/tools/dev/bash_profile b/tools/dev/bash_profile
index 328f5f4..d5d11bd 100644
--- a/tools/dev/bash_profile
+++ b/tools/dev/bash_profile
@@ -41,7 +41,7 @@
 
 # Short-hand to launch API docs and sample topology viewer GUI
 alias docs='open $ONOS_ROOT/target/site/apidocs/index.html'
-alias gui='open http://localhost:8181/onos/tvue'
+alias gui='onos-gui'
 
 
 # Test related conveniences
diff --git a/tools/package/bin/onos-ctl b/tools/package/bin/onos-service
similarity index 100%
rename from tools/package/bin/onos-ctl
rename to tools/package/bin/onos-service
diff --git a/tools/package/debian/onos.conf b/tools/package/debian/onos.conf
index d398bda..0d4cd6e 100644
--- a/tools/package/debian/onos.conf
+++ b/tools/package/debian/onos.conf
@@ -16,6 +16,6 @@
 script
   [ -f /opt/onos/options ] && . /opt/onos/options
   start-stop-daemon --signal INT --start --chuid sdn \
-    --exec /opt/onos/bin/onos-ctl -- $ONOS_OPTS \
+    --exec /opt/onos/bin/onos-service -- $ONOS_OPTS \
         >/opt/onos/var/stdout.log 2>/opt/onos/var/stderr.log
 end script
diff --git a/tools/package/etc/hazelcast.xml b/tools/package/etc/hazelcast.xml
index abd6223..b950768 100644
--- a/tools/package/etc/hazelcast.xml
+++ b/tools/package/etc/hazelcast.xml
@@ -1,5 +1,27 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.2.xsd"
+<!--
+  ~ Copyright (c) 2008-2013, Hazelcast, Inc. All Rights Reserved.
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~ http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<!--
+    The default Hazelcast configuration. This is used when:
+
+    - no hazelcast.xml if present
+
+-->
+<hazelcast xsi:schemaLocation="http://www.hazelcast.com/schema/config hazelcast-config-3.3.xsd"
            xmlns="http://www.hazelcast.com/schema/config"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <group>
@@ -11,8 +33,8 @@
         <port auto-increment="true" port-count="100">5701</port>
         <outbound-ports>
             <!--
-                Allowed port range when connecting to other nodes.
-                0 or * means use system provided port.
+            Allowed port range when connecting to other nodes.
+            0 or * means use system provided port.
             -->
             <ports>0</ports>
         </outbound-ports>
@@ -24,18 +46,6 @@
             <tcp-ip enabled="false">
                 <interface>127.0.0.1</interface>
             </tcp-ip>
-            <aws enabled="false">
-                <access-key>my-access-key</access-key>
-                <secret-key>my-secret-key</secret-key>
-                <!--optional, default is us-east-1 -->
-                <region>us-west-1</region>
-                <!--optional, default is ec2.amazonaws.com. If set, region shouldn't be set as it will override this property -->
-                <host-header>ec2.amazonaws.com</host-header>
-                <!-- optional, only instances belonging to this group will be discovered, default will try all running instances -->
-                <security-group-name>hazelcast-sg</security-group-name>
-                <tag-key>type</tag-key>
-                <tag-value>hz-nodes</tag-value>
-            </aws>
         </join>
         <interfaces enabled="true">
             <interface>192.168.56.*</interface>
@@ -61,9 +71,9 @@
         </symmetric-encryption>
     </network>
     <partition-group enabled="false"/>
-    <executor-service>
+    <executor-service name="default">
         <pool-size>16</pool-size>
-        <!-- Queue capacity. 0 means Integer.MAX_VALUE -->
+        <!--Queue capacity. 0 means Integer.MAX_VALUE.-->
         <queue-capacity>0</queue-capacity>
     </executor-service>
     <queue name="default">
@@ -81,22 +91,24 @@
             fail-safety. 0 means no backup.
         -->
         <backup-count>1</backup-count>
+
         <!--
             Number of async backups. 0 means no backup.
         -->
         <async-backup-count>0</async-backup-count>
+
         <empty-queue-ttl>-1</empty-queue-ttl>
     </queue>
-
     <map name="default">
         <!--
-            Data type that will be used for storing recordMap.
-            Possible values:
-                BINARY (default): keys and values will be stored as binary data
-                OBJECT : values will be stored in their object forms
-                OFFHEAP : values will be stored in non-heap region of JVM
+           Data type that will be used for storing recordMap.
+           Possible values:
+           BINARY (default): keys and values will be stored as binary data
+           OBJECT : values will be stored in their object forms
+           OFFHEAP : values will be stored in non-heap region of JVM
         -->
         <in-memory-format>BINARY</in-memory-format>
+
         <!--
             Number of backups. If 1 is set as the backup-count for example,
             then all entries of the map will be copied to another JVM for
@@ -144,6 +156,12 @@
         -->
         <eviction-percentage>25</eviction-percentage>
         <!--
+            Minimum time in milliseconds which should pass before checking
+            if a partition of this map is evictable or not.
+            Default value is 100 millis.
+        -->
+        <min-eviction-check-millis>100</min-eviction-check-millis>
+        <!--
             While recovering from split-brain (network partitioning),
             map entries in the small cluster will merge into the bigger cluster
             based on the policy set here. When an entry merge into the
@@ -159,6 +177,7 @@
             com.hazelcast.map.merge.LatestUpdateMapMergePolicy ; entry with the latest update wins.
         -->
         <merge-policy>com.hazelcast.map.merge.PassThroughMergePolicy</merge-policy>
+
     </map>
 
     <multimap name="default">
@@ -199,5 +218,6 @@
         <portable-version>0</portable-version>
     </serialization>
 
-    <services enable-defaults="true" />
+    <services enable-defaults="true"/>
+
 </hazelcast>
diff --git a/tools/test/bin/onos b/tools/test/bin/onos
index f8e62dc..74bf1cf 100755
--- a/tools/test/bin/onos
+++ b/tools/test/bin/onos
@@ -1,6 +1,6 @@
 #!/bin/bash
 #-------------------------------------------------------------------------------
-# ONOS remote command-line client
+# ONOS remote command-line client.
 #-------------------------------------------------------------------------------
 
 [ -n "$1" ] && OCI=$1 && shift
diff --git a/tools/test/bin/onos-gui b/tools/test/bin/onos-gui
new file mode 100755
index 0000000..f782751
--- /dev/null
+++ b/tools/test/bin/onos-gui
@@ -0,0 +1,9 @@
+#!/bin/bash
+#-------------------------------------------------------------------------------
+# Launches ONOS GUI on the specified node.
+#-------------------------------------------------------------------------------
+
+host=${1:-$OCI}
+host=${host:-localhost}
+
+open http://$host:8181/onos/tvue
\ No newline at end of file
diff --git a/tools/test/bin/onos-install b/tools/test/bin/onos-install
index b270704..ecb6da1 100755
--- a/tools/test/bin/onos-install
+++ b/tools/test/bin/onos-install
@@ -1,6 +1,6 @@
 #!/bin/bash
 #-------------------------------------------------------------------------------
-# Remotely pushes bits to a remote machine and installs ONOS.
+# Remotely pushes bits to a remote node and installs ONOS on it.
 #-------------------------------------------------------------------------------
 
 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
diff --git a/tools/test/bin/onos-log b/tools/test/bin/onos-log
index 1a205f4..3e0c945 100755
--- a/tools/test/bin/onos-log
+++ b/tools/test/bin/onos-log
@@ -1,6 +1,6 @@
 #!/bin/bash
 #-------------------------------------------------------------------------------
-# Monitors remote ONOS log file.
+# Monitors remote ONOS log file on the specified node.
 #-------------------------------------------------------------------------------
 
 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
diff --git a/tools/test/bin/onos-push-keys b/tools/test/bin/onos-push-keys
index a469643..fd49f86 100755
--- a/tools/test/bin/onos-push-keys
+++ b/tools/test/bin/onos-push-keys
@@ -1,6 +1,6 @@
 #!/bin/bash
 #-------------------------------------------------------------------------------
-# Pushes the local id_rsa.pub to the remote ONOS host authorized_keys.
+# Pushes the local id_rsa.pub to the authorized_keys on a remote ONOS node.
 #-------------------------------------------------------------------------------
 
 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
diff --git a/tools/test/bin/onos-service b/tools/test/bin/onos-service
new file mode 100755
index 0000000..d148f67
--- /dev/null
+++ b/tools/test/bin/onos-service
@@ -0,0 +1,9 @@
+#!/bin/bash
+#-------------------------------------------------------------------------------
+# Remotely administers the ONOS service on the specified node.
+#-------------------------------------------------------------------------------
+
+[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
+. $ONOS_ROOT/tools/build/envDefaults
+
+ssh $ONOS_USER@${1:-$OCI} "sudo service onos ${2:-status}"
\ No newline at end of file
diff --git a/tools/test/bin/onos-ssh b/tools/test/bin/onos-ssh
index 406c9cb..f475f25 100755
--- a/tools/test/bin/onos-ssh
+++ b/tools/test/bin/onos-ssh
@@ -1,6 +1,6 @@
 #!/bin/bash
 #-------------------------------------------------------------------------------
-# Logs in to the remote ONOS instance.
+# Logs in to the remote ONOS node.
 #-------------------------------------------------------------------------------
 
 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
diff --git a/tools/test/bin/onos-test b/tools/test/bin/onos-test
index d549721..c5e8356 100755
--- a/tools/test/bin/onos-test
+++ b/tools/test/bin/onos-test
@@ -9,5 +9,5 @@
 nodes=$(env | sort | egrep "OC[0-9]+" | cut -d= -f2)
 
 onos-package
-for node in $nodes; do onos-install -f $node; done
+for node in $nodes; do printf "%s: " $node; onos-install -f $node; done
 for node in $nodes; do onos-wait-for-start $node; done
diff --git a/tools/test/bin/onos-uninstall b/tools/test/bin/onos-uninstall
index bfc3b48..78ff629 100755
--- a/tools/test/bin/onos-uninstall
+++ b/tools/test/bin/onos-uninstall
@@ -1,6 +1,6 @@
 #!/bin/bash
 #-------------------------------------------------------------------------------
-# Remotely stops & uninstalls ONOS.
+# Remotely stops & uninstalls ONOS on the specified node.
 #-------------------------------------------------------------------------------
 
 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
diff --git a/tools/test/bin/onos-wait-for-start b/tools/test/bin/onos-wait-for-start
index 0190d6f..442a07d 100755
--- a/tools/test/bin/onos-wait-for-start
+++ b/tools/test/bin/onos-wait-for-start
@@ -1,6 +1,6 @@
 #!/bin/bash
 #-------------------------------------------------------------------------------
-# Waits for ONOS to reach run-level 100.
+# Waits for ONOS to reach run-level 100 on the specified remote node.
 #-------------------------------------------------------------------------------
 
 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1