<connection>scm:git:ssh://git.opendaylight.org:29418/openflowplugin.git</connection>
<developerConnection>scm:git:ssh://git.opendaylight.org:29418/openflowplugin.git</developerConnection>
</scm>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.karaf.tooling</groupId>
+ <artifactId>karaf-services-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
</project>
*/
package org.opendaylight.openflowplugin.droptestkaraf;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.lifecycle.Reference;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.Session;
import org.opendaylight.openflowplugin.testcommon.DropTestCommiter;
import org.opendaylight.openflowplugin.testcommon.DropTestRpcSender;
@Command(scope = "drop-test", name = "clearDropStats", description = "Clear drop statistics.")
-public class ClearDropStatsCommandProvider extends OsgiCommandSupport {
+@Service
+public class ClearDropStatsCommandProvider implements Action {
@Reference
DropTestRpcSender rpcProvider;
@Reference
DropTestCommiter dsProvider;
+ @Reference
+ Session session;
@Override
- protected Object doExecute() {
+ public Object execute() {
final var out = session.getConsole();
out.println("Clearing drop statistics... ");
rpcProvider.clearStats();
*/
package org.opendaylight.openflowplugin.droptestkaraf;
+import org.apache.karaf.shell.api.action.Action;
+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.Reference;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.Session;
import org.opendaylight.openflowplugin.testcommon.DropTestCommiter;
@Command(scope = "drop-test", name = "dropAllPackets",
description = "drop packet responder involving dataStore and FRM")
-public class DropAllPacketsCommandProvider extends OsgiCommandSupport {
+@Service
+public class DropAllPacketsCommandProvider implements Action {
@Reference
DropTestCommiter provider;
+ @Reference
+ Session session;
@Argument(index = 0, name = "on-off",
description = "target state of drop responder",
required = true, multiValued = false)
+ @Completion(DropAllPacketsCompleter.class)
String targetStateArg;
@Override
- protected Object doExecute() {
+ public Object execute() {
final var out = session.getConsole();
if ("on".equalsIgnoreCase(targetStateArg)) {
package org.opendaylight.openflowplugin.droptestkaraf;
import java.util.List;
-import org.apache.karaf.shell.console.Completer;
-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.Completer;
+import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
/**
* General dropAllPackets on/off argument completer.
*/
+@Service
public class DropAllPacketsCompleter implements Completer {
@Override
- public int complete(String buffer, int cursor, List<String> candidates) {
- StringsCompleter delegate = new StringsCompleter();
+ public int complete(final Session session, final CommandLine commandLine, final List<String> candidates) {
+ final var delegate = new StringsCompleter();
delegate.getStrings().add("on");
delegate.getStrings().add("off");
- return delegate.complete(buffer, cursor, candidates);
+ return delegate.complete(session, commandLine, candidates);
}
}
*/
package org.opendaylight.openflowplugin.droptestkaraf;
-import java.io.PrintStream;
+import org.apache.karaf.shell.api.action.Action;
+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.Reference;
-import org.apache.karaf.shell.commands.Argument;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.Session;
import org.opendaylight.openflowplugin.testcommon.DropTestRpcSender;
@Command(scope = "drop-test", name = "dropAllPacketsRpc",
description = "drop packet responder involving SalFlowService")
-public class DropAllPacketsRpcCommandProvider extends OsgiCommandSupport {
+@Service
+public class DropAllPacketsRpcCommandProvider implements Action {
@Reference
DropTestRpcSender provider;
+ @Reference
+ Session session;
@Argument(index = 0, name = "on-off",
description = "target state of drop responder",
required = true, multiValued = false)
+ @Completion(DropAllPacketsCompleter.class)
String targetStateArg;
@Override
- protected Object doExecute() {
- PrintStream out = session.getConsole();
+ public Object execute() {
+ final var out = session.getConsole();
if ("on".equalsIgnoreCase(targetStateArg)) {
if (provider.start()) {
out.println("DropAllFlows transitions to on");
*/
package org.opendaylight.openflowplugin.droptestkaraf;
+import org.apache.karaf.shell.api.action.Action;
+import org.apache.karaf.shell.api.action.Command;
import org.apache.karaf.shell.api.action.lifecycle.Reference;
-import org.apache.karaf.shell.commands.Command;
-import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.api.console.Session;
import org.opendaylight.openflowplugin.testcommon.DropTestCommiter;
import org.opendaylight.openflowplugin.testcommon.DropTestRpcSender;
@Command(scope = "drop-test", name = "showDropStats", description = "Show drop statistics.")
-public class ShowDropStatsCommandProvider extends OsgiCommandSupport {
+@Service
+public class ShowDropStatsCommandProvider implements Action {
@Reference
DropTestRpcSender rpcProvider;
@Reference
DropTestCommiter dsProvider;
+ @Reference
+ Session session;
@Override
- protected Object doExecute() {
- var out = session.getConsole();
+ public Object execute() {
+ final var out = session.getConsole();
out.format("RPC Test Statistics: %s%n", rpcProvider.getStats().toString());
out.format("FRM Test Statistics: %s%n", dsProvider.getStats().toString());
return null;
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-
- <command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.0.0">
- <command name="drop-test/dropAllPackets">
- <action class="org.opendaylight.openflowplugin.droptestkaraf.DropAllPacketsCommandProvider"/>
- <completers>
- <ref component-id="onOffCompleter"/>
- <null/>
- </completers>
- </command>
- <command name="drop-test/dropAllPacketsRpc">
- <action class="org.opendaylight.openflowplugin.droptestkaraf.DropAllPacketsRpcCommandProvider"/>
- <completers>
- <ref component-id="onOffCompleter"/>
- <null/>
- </completers>
- </command>
- <command name="drop-test/showDropStats">
- <action class="org.opendaylight.openflowplugin.droptestkaraf.ShowDropStatsCommandProvider"/>
- </command>
- <command name="drop-test/clearDropStats">
- <action class="org.opendaylight.openflowplugin.droptestkaraf.ClearDropStatsCommandProvider"/>
- </command>
- </command-bundle>
-
- <bean id="onOffCompleter" class="org.opendaylight.openflowplugin.droptestkaraf.DropAllPacketsCompleter"/>
-
-</blueprint>
\ No newline at end of file