VPLS app changes for karaf 4.2.1 CLI

Change-Id: If92b8f8ba5f76a328908977d4c5208bfecd3a5c7
diff --git a/apps/vpls/BUILD b/apps/vpls/BUILD
index 5e90e5b..07a23df 100644
--- a/apps/vpls/BUILD
+++ b/apps/vpls/BUILD
@@ -6,6 +6,10 @@
 
 osgi_jar_with_tests(
     exclude_tests = ["org.onosproject.vpls.VplsTest"],
+    karaf_command_packages = [
+        "org.onosproject.vpls.cli",
+        "org.onosproject.vpls.cli.completer",
+    ],
     test_deps = TEST_ADAPTERS,
     deps = COMPILE_DEPS,
 )
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/cli/VplsCommand.java b/apps/vpls/src/main/java/org/onosproject/vpls/cli/VplsCommand.java
index 1f64422..0e060c5 100644
--- a/apps/vpls/src/main/java/org/onosproject/vpls/cli/VplsCommand.java
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/cli/VplsCommand.java
@@ -18,6 +18,7 @@
 import com.google.common.collect.ImmutableSet;
 import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.net.intf.Interface;
@@ -26,6 +27,9 @@
 import org.onosproject.vpls.api.VplsData;
 import org.onosproject.vpls.api.Vpls;
 import org.onosproject.vpls.api.VplsData.VplsState;
+import org.onosproject.vpls.cli.completer.VplsCommandCompleter;
+import org.onosproject.vpls.cli.completer.VplsNameCompleter;
+import org.onosproject.vpls.cli.completer.VplsOptArgCompleter;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -109,15 +113,18 @@
     @Argument(index = 0, name = "command", description = "Command name (add-if|" +
             "create|delete|list|rem-if|set-encap|show)",
             required = true, multiValued = false)
+    @Completion(VplsCommandCompleter.class)
     String command = null;
 
     @Argument(index = 1, name = "vplsName", description = "The name of the VPLS",
             required = false, multiValued = false)
+    @Completion(VplsNameCompleter.class)
     String vplsName = null;
 
     @Argument(index = 2, name = "optArg", description = "The interface name or" +
             " the encapsulation type for set-encap",
             required = false, multiValued = false)
+    @Completion(VplsOptArgCompleter.class)
     String optArg = null;
 
     @Override
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsCommandCompleter.java b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsCommandCompleter.java
index 7e3cb65..4ab8e93 100644
--- a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsCommandCompleter.java
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsCommandCompleter.java
@@ -16,6 +16,7 @@
 package org.onosproject.vpls.cli.completer;
 
 import com.google.common.collect.Lists;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractChoicesCompleter;
 import org.onosproject.vpls.cli.VplsCommandEnum;
 
@@ -25,6 +26,7 @@
 /**
  * VPLS command completer.
  */
+@Service
 public class VplsCommandCompleter extends AbstractChoicesCompleter {
 
     @Override
diff --git a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsNameCompleter.java b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsNameCompleter.java
index d3ffb33..83f06e4 100644
--- a/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsNameCompleter.java
+++ b/apps/vpls/src/main/java/org/onosproject/vpls/cli/completer/VplsNameCompleter.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.vpls.cli.completer;
 
+import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractChoicesCompleter;
 import org.onosproject.vpls.api.Vpls;
 import org.onosproject.vpls.api.VplsData;
@@ -28,6 +29,7 @@
 /**
  * VPLS name completer.
  */
+@Service
 public class VplsNameCompleter extends AbstractChoicesCompleter {
 
     protected Vpls vpls;