Added onos-test.
Refactored the CLI classes.
diff --git a/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java b/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java
index 8c41b7f..184a7e6 100644
--- a/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/AbstractShellCommand.java
@@ -15,6 +15,7 @@
      * @param serviceClass service class
      * @param <T>          type of service
      * @return service implementation
+     * @throws org.onlab.osgi.ServiceNotFoundException if service is unavailable
      */
     public static <T> T get(Class<T> serviceClass) {
         return DefaultServiceDirectory.getService(serviceClass);
@@ -26,7 +27,7 @@
      * @param format format string; see {@link String#format}
      * @param args   arguments
      */
-    public static void print(String format, Object... args) {
+    public void print(String format, Object... args) {
         System.out.println(String.format(format, args));
     }
 
@@ -36,7 +37,7 @@
      * @param format format string; see {@link String#format}
      * @param args   arguments
      */
-    public static void error(String format, Object... args) {
+    public void error(String format, Object... args) {
         System.err.println(String.format(format, args));
     }
 
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/DevicePortsListCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/DevicePortsListCommand.java
index 9d68fb8..e62fe56 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/DevicePortsListCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/DevicePortsListCommand.java
@@ -36,7 +36,7 @@
 
     @Override
     protected void execute() {
-        DeviceService service = getService(DeviceService.class);
+        DeviceService service = get(DeviceService.class);
         if (uri == null) {
             for (Device device : getSortedDevices(service)) {
                 printDevice(service, device);
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/DeviceRemoveCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/DeviceRemoveCommand.java
index 7cc55e6..564d1ea 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/DeviceRemoveCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/DeviceRemoveCommand.java
@@ -19,7 +19,7 @@
 
     @Override
     protected void execute() {
-        getService(DeviceAdminService.class).removeDevice(DeviceId.deviceId(uri));
+        get(DeviceAdminService.class).removeDevice(DeviceId.deviceId(uri));
     }
 
 }
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/DeviceRoleCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/DeviceRoleCommand.java
index ddccdaf..60a203a 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/DeviceRoleCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/DeviceRoleCommand.java
@@ -25,7 +25,7 @@
     @Override
     protected void execute() {
         MastershipRole mastershipRole = MastershipRole.valueOf(role.toUpperCase());
-        getService(DeviceAdminService.class).setRole(DeviceId.deviceId(uri),
+        get(DeviceAdminService.class).setRole(DeviceId.deviceId(uri),
                                                      mastershipRole);
     }
 
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/DevicesListCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/DevicesListCommand.java
index 357d005..be102f2 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/DevicesListCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/DevicesListCommand.java
@@ -30,7 +30,7 @@
 
     @Override
     protected void execute() {
-        DeviceService service = getService(DeviceService.class);
+        DeviceService service = get(DeviceService.class);
         for (Device device : getSortedDevices(service)) {
             printDevice(service, device);
         }
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/FlowsListCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/FlowsListCommand.java
index 9e21642..c2ca416 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/FlowsListCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/FlowsListCommand.java
@@ -35,8 +35,8 @@
 
     @Override
     protected void execute() {
-        DeviceService deviceService = getService(DeviceService.class);
-        FlowRuleService service = getService(FlowRuleService.class);
+        DeviceService deviceService = get(DeviceService.class);
+        FlowRuleService service = get(FlowRuleService.class);
         Map<Device, List<FlowRule>> flows = getSortedFlows(deviceService, service);
         for (Device d : deviceService.getDevices()) {
             printFlows(d, flows.get(d));
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/HostsListCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/HostsListCommand.java
index c45470c..29919a8 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/HostsListCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/HostsListCommand.java
@@ -30,7 +30,7 @@
 
     @Override
     protected void execute() {
-        HostService service = getService(HostService.class);
+        HostService service = get(HostService.class);
         for (Host host : getSortedHosts(service)) {
             printHost(host);
         }
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/LinksListCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/LinksListCommand.java
index 2519bdd..4361bd7 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/LinksListCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/LinksListCommand.java
@@ -24,7 +24,7 @@
 
     @Override
     protected void execute() {
-        LinkService service = getService(LinkService.class);
+        LinkService service = get(LinkService.class);
         Iterable<Link> links = uri != null ?
                 service.getDeviceLinks(deviceId(uri)) : service.getLinks();
         for (Link link : links) {
diff --git a/cli/src/main/java/org/onlab/onos/cli/net/TopologyCommand.java b/cli/src/main/java/org/onlab/onos/cli/net/TopologyCommand.java
index a258205..5c8310f 100644
--- a/cli/src/main/java/org/onlab/onos/cli/net/TopologyCommand.java
+++ b/cli/src/main/java/org/onlab/onos/cli/net/TopologyCommand.java
@@ -23,7 +23,7 @@
      * Initializes the context for all cluster commands.
      */
     protected void init() {
-        service = getService(TopologyService.class);
+        service = get(TopologyService.class);
         topology = service.currentTopology();
     }