(Last Updated On: )
In this tutorial I will give a brief demonstration on how to write a custom dropwizard command.
MyCommand
So below you will see the command class and how we are creating and registering a command line param called “test” which is a Boolean.
- package ca.gaudreault.mydropwizardapp;
- import io.dropwizard.cli.Command;
- import io.dropwizard.setup.Bootstrap;
- import net.sourceforge.argparse4j.inf.Namespace;
- import net.sourceforge.argparse4j.inf.Subparser;
- public class MyCommand extends Command {
- protected MyCommand() {
- super("myCommand", "This is a sample command");
- }
- @Override
- public void configure(Subparser subparser) {
- subparser.addArgument("-test").required(true).type(Boolean.class).dest("test").help("Does something really awesome");
- }
- @Override
- public void run(Bootstrap<?> bootstrap, Namespace namespace) throws Exception {
- System.out.println("MyCommand " + namespace.getBoolean("test"));
- }
- }
MyDropwizardAppApplication
If you remember from part 1 of this series you created the based Dropwizard app. So you should have a class called “MyDropwizardAppApplication”. Open that now and modify the “initialize” like the below. Note that we are only adding the “addCommand”.
- @Override
- public void initialize(final Bootstrap bootstrap) {
- bootstrap.addCommand(new MyCommand());
- }
Executing Command
Basically now we can just call our JAR file and pass the following arguments to it.
- myCommand -test false
You will see once it runs that following
- MyCommand false