Add CLI bundle to the startup archetype
[controller.git] / opendaylight / archetypes / opendaylight-startup / src / main / resources / archetype-resources / cli / src / main / java / __packageInPathFormat__ / cli / commands / __classPrefix__CliTestCommand.java
diff --git a/opendaylight/archetypes/opendaylight-startup/src/main/resources/archetype-resources/cli/src/main/java/__packageInPathFormat__/cli/commands/__classPrefix__CliTestCommand.java b/opendaylight/archetypes/opendaylight-startup/src/main/resources/archetype-resources/cli/src/main/java/__packageInPathFormat__/cli/commands/__classPrefix__CliTestCommand.java
new file mode 100644 (file)
index 0000000..65ec5f7
--- /dev/null
@@ -0,0 +1,56 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+/*
+ * Copyright © ${copyrightYear} ${copyright} and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package ${package}.cli.commands;
+
+import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Option;
+import org.apache.karaf.shell.console.AbstractAction;
+import ${package}.cli.api.${classPrefix}CliCommands;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * This is an example class. The class name can be renamed to match the command implementation that it will invoke.
+ * Specify command details by updating the fields in the Command annotation below.
+ */
+@Command(name = "test-command", scope = "add the scope of the command, usually project name", description = "add a description for the command")
+public class ${classPrefix}CliTestCommand extends AbstractAction {
+
+    private static final Logger LOG = LoggerFactory.getLogger(${classPrefix}CliTestCommand.class);
+    protected final ${classPrefix}CliCommands service;
+
+    public ${classPrefix}CliTestCommand(final ${classPrefix}CliCommands service) {
+        this.service = service;
+    }
+
+    /**
+     * Add the arguments required by the command.
+     * Any number of arguments can be added using the Option annotation
+     * The below argument is just an example and should be changed as per your requirements
+     */
+    @Option(name = "-tA",
+            aliases = { "--testArgument" },
+            description = "test command argument",
+            required = true,
+            multiValued = false)
+    private Object testArgument;
+
+    @Override
+    protected Object doExecute() throws Exception {
+        /**
+         * Invoke commannd implementation here using the service instance.
+         * Implement how you want the output of the command to be displayed.
+         * Below is just an example.
+         */
+        final String testMessage = (String) service.testCommand(testArgument);
+        return testMessage;
+    }
+}
\ No newline at end of file