Added onos-test.
Refactored the CLI classes.
diff --git a/utils/osgi/src/main/java/org/onlab/osgi/DefaultServiceDirectory.java b/utils/osgi/src/main/java/org/onlab/osgi/DefaultServiceDirectory.java
index d483991..bc401fb 100644
--- a/utils/osgi/src/main/java/org/onlab/osgi/DefaultServiceDirectory.java
+++ b/utils/osgi/src/main/java/org/onlab/osgi/DefaultServiceDirectory.java
@@ -2,6 +2,7 @@
 
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
 
 /**
  * Default implementation of the service directory using OSGi framework utilities.
@@ -17,11 +18,16 @@
      */
     public static <T> T getService(Class<T> serviceClass) {
         BundleContext bc = FrameworkUtil.getBundle(serviceClass).getBundleContext();
-        T impl = bc.getService(bc.getServiceReference(serviceClass));
-        if (impl == null) {
-            throw new ServiceNotFoundException("Service " + serviceClass.getName() + " not found");
+        if (bc != null) {
+            ServiceReference<T> reference = bc.getServiceReference(serviceClass);
+            if (reference != null) {
+                T impl = bc.getService(reference);
+                if (impl != null) {
+                    return impl;
+                }
+            }
         }
-        return impl;
+        throw new ServiceNotFoundException("Service " + serviceClass.getName() + " not found");
     }
 
     @Override