[WIP] apps CLI changes for karaf upgrade

Change-Id: I283efc39c7d4f4b31344f1d2d0cdd2b98a60932d
diff --git a/drivers/fujitsu/BUILD b/drivers/fujitsu/BUILD
index f6a2fdd..7b91e8c 100644
--- a/drivers/fujitsu/BUILD
+++ b/drivers/fujitsu/BUILD
@@ -1,9 +1,7 @@
-COMPILE_DEPS = CORE_DEPS + [
-    "@org_apache_karaf_shell_console//jar",
+COMPILE_DEPS = CORE_DEPS + CLI + [
     "//drivers/utilities:onos-drivers-utilities",
     "//protocols/netconf/api:onos-protocols-netconf-api",
     "//protocols/netconf/ctl:onos-protocols-netconf-ctl",
-    "//cli:onos-cli",
     "//apps/optical-model:onos-apps-optical-model",
     "//incubator/api:onos-incubator-api",
 ]
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltEthLoopbackCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltEthLoopbackCommand.java
index 8af49b7..d6f96d4 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltEthLoopbackCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltEthLoopbackCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltOnuOperConfig;
@@ -26,6 +27,7 @@
 /**
  * Operates/releases loopback on Ethernet port of an ONU in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-ethloopback",
         description = "Operates/releases loopback on Ethernet port of an ONU in vOLT")
 public class VoltEthLoopbackCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetAlertFilterCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetAlertFilterCommand.java
index 1834413..0bd0dee 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetAlertFilterCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetAlertFilterCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltAlertConfig;
@@ -26,6 +27,7 @@
 /**
  * Gets alert filter severity level in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-notification-alertfilter",
         description = "Gets alert filter severity level in vOLT")
 public class VoltGetAlertFilterCommand extends AbstractShellCommand {
@@ -37,7 +39,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetAllCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetAllCommand.java
index 59e6d26..3aa7b89 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetAllCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetAllCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.drivers.fujitsu.behaviour.VoltNeConfig;
 import org.onosproject.net.DeviceId;
@@ -26,6 +27,7 @@
 /**
  * Gets all available data in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-all",
         description = "Gets all available data in vOLT")
 public class VoltGetAllCommand extends AbstractShellCommand {
@@ -37,7 +39,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetNniLinksCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetNniLinksCommand.java
index 2a4e989..9c10695 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetNniLinksCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetNniLinksCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltNniLinkConfig;
@@ -26,6 +27,7 @@
 /**
  * Gets NNI links in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-nnilinks",
         description = "Gets NNI links in vOLT")
 public class VoltGetNniLinksCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetOnuStatsCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetOnuStatsCommand.java
index 62ae3e5..8f2a83c 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetOnuStatsCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetOnuStatsCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltOnuConfig;
@@ -26,6 +27,7 @@
 /**
  * Gets ONU statistics in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-onustats",
         description = "Gets ONU statistics in vOLT")
 public class VoltGetOnuStatsCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetOnusCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetOnusCommand.java
index a5eaa2d..6677d5e 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetOnusCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetOnusCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltOnuConfig;
@@ -26,6 +27,7 @@
 /**
  * Gets ONUs available in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-onus",
         description = "Gets ONUs available in vOLT")
 public class VoltGetOnusCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetPonLinksCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetPonLinksCommand.java
index a45caad..743f574 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetPonLinksCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltGetPonLinksCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltPonLinkConfig;
@@ -26,6 +27,7 @@
 /**
  * Gets PON links in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-ponlinks",
         description = "Gets PON links in vOLT")
 public class VoltGetPonLinksCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltOndemandFwdlCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltOndemandFwdlCommand.java
index fa79f11..4bc17a5 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltOndemandFwdlCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltOndemandFwdlCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.drivers.fujitsu.behaviour.VoltFwdlConfig;
 import org.onosproject.net.DeviceId;
@@ -26,6 +27,7 @@
 /**
  * Requests manual firmware upgrade on a list of ONUs in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-ondemandfwdl",
         description = "Requests manual firmware upgrade on a list of ONUs in vOLT")
 public class VoltOndemandFwdlCommand extends AbstractShellCommand {
@@ -42,7 +44,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltRebootOnuCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltRebootOnuCommand.java
index d9d7e68..92a2c64 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltRebootOnuCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltRebootOnuCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltOnuOperConfig;
@@ -26,6 +27,7 @@
 /**
  * Reboots an ONU in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-rebootonu",
         description = "Reboots an ONU in vOLT")
 public class VoltRebootOnuCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetAlertFilterCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetAlertFilterCommand.java
index a9079d3..91c51a6 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetAlertFilterCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetAlertFilterCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltAlertConfig;
@@ -26,6 +27,7 @@
 /**
  * Sets alert filter severity level in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-notification-setalertfilter",
         description = "Sets alert filter severity level in vOLT")
 public class VoltSetAlertFilterCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetNniLinkCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetNniLinkCommand.java
index ff45fd8..dfeb6de 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetNniLinkCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetNniLinkCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltNniLinkConfig;
@@ -26,6 +27,7 @@
 /**
  * Sets a parameter of a NNI link in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-setnnilink",
         description = "Sets a parameter of a NNI link in vOLT")
 public class VoltSetNniLinkCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetOnuCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetOnuCommand.java
index 6c76986..506d344 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetOnuCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetOnuCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltOnuConfig;
@@ -26,6 +27,7 @@
 /**
  * Sets a parameter value of an ONU in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-setonu",
         description = "Sets a parameter value of an ONU in vOLT")
 public class VoltSetOnuCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetPonLinkCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetPonLinkCommand.java
index c402d15..c5b7252 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetPonLinkCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSetPonLinkCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltPonLinkConfig;
@@ -26,6 +27,7 @@
 /**
  * Sets a parameter of a PON link in vOLT.
  */
+@Service
 @Command(scope = "onos", name = "volt-setponlink",
         description = "Sets a parameter of a PON link in vOLT")
 public class VoltSetPonLinkCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSubscribeCommand.java b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSubscribeCommand.java
index 4f222dc..0756e1f 100644
--- a/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSubscribeCommand.java
+++ b/drivers/fujitsu/src/main/java/org/onosproject/drivers/fujitsu/cli/VoltSubscribeCommand.java
@@ -15,8 +15,9 @@
  */
 package org.onosproject.drivers.fujitsu.cli;
 
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.api.action.Argument;
+import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.DeviceId;
 import org.onosproject.drivers.fujitsu.behaviour.VoltAlertConfig;
@@ -26,6 +27,7 @@
 /**
  * Subscribes to receive notifications of vOLT or unsubscribes.
  */
+@Service
 @Command(scope = "onos", name = "volt-notification-subscribe",
         description = "Subscribes to receive notifications of vOLT")
 public class VoltSubscribeCommand extends AbstractShellCommand {
@@ -41,7 +43,7 @@
     private DeviceId deviceId;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         DriverService service = get(DriverService.class);
         deviceId = DeviceId.deviceId(uri);
         DriverHandler h = service.createHandler(deviceId);
diff --git a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispMappingExtensionCodecRegistrator.java b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispMappingExtensionCodecRegistrator.java
index 20e2da3..2999ae7 100644
--- a/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispMappingExtensionCodecRegistrator.java
+++ b/drivers/lisp/src/main/java/org/onosproject/drivers/lisp/extensions/LispMappingExtensionCodecRegistrator.java
@@ -15,12 +15,6 @@
  */
 package org.onosproject.drivers.lisp.extensions;
 
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.Deactivate;
-import org.osgi.service.component.annotations.Reference;
-import org.osgi.service.component.annotations.ReferenceCardinality;
-import org.onosproject.codec.CodecService;
 import org.onosproject.drivers.lisp.extensions.codec.LispAppDataAddressCodec;
 import org.onosproject.drivers.lisp.extensions.codec.LispAsAddressCodec;
 import org.onosproject.drivers.lisp.extensions.codec.LispGcAddressCodec;
@@ -33,6 +27,9 @@
 import org.onosproject.drivers.lisp.extensions.codec.LispTeAddressCodec;
 import org.onosproject.drivers.lisp.extensions.codec.LispTeRecordCodec;
 import org.onosproject.mapping.MappingCodecRegistrator;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.slf4j.Logger;
 
 import static org.slf4j.LoggerFactory.getLogger;
@@ -41,15 +38,12 @@
  * Implementation of the JSON codec brokering service for
  * mapping extension primitives.
  */
-@Component(immediate = true)
+@Component(immediate = true, service = MappingCodecRegistrator.class)
 public class LispMappingExtensionCodecRegistrator extends MappingCodecRegistrator {
 
     private final Logger log = getLogger(getClass());
     private MappingCodecRegistrator registrator;
 
-    @Reference(cardinality = ReferenceCardinality.MANDATORY)
-    public CodecService codecService;
-
     @Activate
     public void activate() {
 
diff --git a/drivers/odtn-driver/BUILD b/drivers/odtn-driver/BUILD
index a71f445..2ca6cee 100644
--- a/drivers/odtn-driver/BUILD
+++ b/drivers/odtn-driver/BUILD
@@ -1,4 +1,5 @@
 COMPILE_DEPS = CORE_DEPS + [
+    "@commons_jxpath//jar",
     "//drivers/utilities:onos-drivers-utilities",
     "//protocols/netconf/api:onos-protocols-netconf-api",
     "//apps/odtn/api:onos-apps-odtn-api",
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/gui/CpuUI.java b/drivers/server/src/main/java/org/onosproject/drivers/server/gui/CpuUI.java
index 31fc57a..915a993 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/gui/CpuUI.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/gui/CpuUI.java
@@ -16,32 +16,28 @@
 
 package org.onosproject.drivers.server.gui;
 
+import com.google.common.collect.ImmutableList;
 import org.onosproject.ui.UiExtension;
 import org.onosproject.ui.UiExtensionService;
 import org.onosproject.ui.UiMessageHandlerFactory;
 import org.onosproject.ui.UiView;
-
-import com.google.common.collect.ImmutableList;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.Service;
-
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.List;
 
-import static org.onosproject.ui.UiView.Category.NETWORK;
 import static org.onosproject.ui.GlyphConstants.ENDSTATION;
+import static org.onosproject.ui.UiView.Category.NETWORK;
 
 /**
  * Mechanism to stream CPU data to the GUI.
  */
-@Component(immediate = true, enabled = true)
-@Service(value = CpuUI.class)
+@Component(immediate = true, service = CpuUI.class)
 public class CpuUI {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
@@ -73,7 +69,7 @@
     /**
      * Interact with ONOS.
      */
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected UiExtensionService uiExtensionService;
 
     @Activate
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/gui/LatencyUI.java b/drivers/server/src/main/java/org/onosproject/drivers/server/gui/LatencyUI.java
index 9b8c864..e71099e 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/gui/LatencyUI.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/gui/LatencyUI.java
@@ -22,13 +22,12 @@
 import org.onosproject.ui.UiView;
 
 import com.google.common.collect.ImmutableList;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.Service;
 
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -40,8 +39,7 @@
 /**
  * Mechanism to stream latency data to the GUI.
  */
-@Component(immediate = true, enabled = true)
-@Service(value = LatencyUI.class)
+@Component(immediate = true, service = LatencyUI.class)
 public class LatencyUI {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
@@ -73,7 +71,7 @@
     /**
      * Interact with ONOS.
      */
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected UiExtensionService uiExtensionService;
 
     @Activate
diff --git a/drivers/server/src/main/java/org/onosproject/drivers/server/gui/ThroughputUI.java b/drivers/server/src/main/java/org/onosproject/drivers/server/gui/ThroughputUI.java
index 9820051..c41a74a 100644
--- a/drivers/server/src/main/java/org/onosproject/drivers/server/gui/ThroughputUI.java
+++ b/drivers/server/src/main/java/org/onosproject/drivers/server/gui/ThroughputUI.java
@@ -22,13 +22,12 @@
 import org.onosproject.ui.UiView;
 
 import com.google.common.collect.ImmutableList;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.ReferenceCardinality;
-import org.apache.felix.scr.annotations.Service;
 
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -40,8 +39,7 @@
 /**
  * Mechanism to stream throughput data to the GUI.
  */
-@Component(immediate = true, enabled = true)
-@Service(value = ThroughputUI.class)
+@Component(immediate = true, service = ThroughputUI.class)
 public class ThroughputUI {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
@@ -73,7 +71,7 @@
     /**
      * Interact with ONOS.
      */
-    @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
+    @Reference(cardinality = ReferenceCardinality.MANDATORY)
     protected UiExtensionService uiExtensionService;
 
     @Activate