diff --git a/apps/cpman/app/src/main/java/org/onosproject/cpman/cli/ControlMetricsStatsListCommand.java b/apps/cpman/app/src/main/java/org/onosproject/cpman/cli/ControlMetricsStatsListCommand.java
index 30d1a18..77358ff 100644
--- a/apps/cpman/app/src/main/java/org/onosproject/cpman/cli/ControlMetricsStatsListCommand.java
+++ b/apps/cpman/app/src/main/java/org/onosproject/cpman/cli/ControlMetricsStatsListCommand.java
@@ -15,8 +15,8 @@
  */
 package org.onosproject.cpman.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.onosproject.cli.AbstractShellCommand;
 import org.onosproject.cluster.NodeId;
 import org.onosproject.cpman.ControlLoadSnapshot;
@@ -58,7 +58,7 @@
     String name = null;
 
     @Override
-    protected void execute() {
+    protected void doExecute() {
         ControlPlaneMonitorService service = get(ControlPlaneMonitorService.class);
         NodeId nodeId = NodeId.nodeId(node);
         switch (type) {
diff --git a/apps/cpman/app/src/main/java/org/onosproject/cpman/cli/ResourceNameCompleter.java b/apps/cpman/app/src/main/java/org/onosproject/cpman/cli/ResourceNameCompleter.java
index 467b46b..337cd1c 100644
--- a/apps/cpman/app/src/main/java/org/onosproject/cpman/cli/ResourceNameCompleter.java
+++ b/apps/cpman/app/src/main/java/org/onosproject/cpman/cli/ResourceNameCompleter.java
@@ -17,8 +17,10 @@
 
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
-import org.apache.karaf.shell.console.completer.ArgumentCompleter;
-import org.apache.karaf.shell.console.completer.StringsCompleter;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.CommandLine;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
 import org.onosproject.cli.AbstractCompleter;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.cluster.NodeId;
@@ -34,6 +36,7 @@
 /**
  * Resource name completer.
  */
+@Service
 public class ResourceNameCompleter extends AbstractCompleter {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
@@ -46,14 +49,13 @@
 
 
     @Override
-    public int complete(String buffer, int cursor, List<String> candidates) {
+    public int complete(Session session, CommandLine commandLine, List<String> candidates) {
         // delegate string completer
         StringsCompleter delegate = new StringsCompleter();
 
         // Resource type is the second argument.
-        ArgumentCompleter.ArgumentList list = getArgumentList();
-        String nodeId = list.getArguments()[1];
-        String type = list.getArguments()[2];
+        String nodeId = commandLine.getArguments()[1];
+        String type = commandLine.getArguments()[2];
 
         if (resourceTypes.contains(type)) {
             ControlPlaneMonitorService monitorService =
@@ -85,6 +87,6 @@
             }
         }
 
-        return delegate.complete(buffer, cursor, candidates);
+        return delegate.complete(session, commandLine, candidates);
     }
 }
