dropwizard で paramter 付き command を作成していて、
parameter のデフォルト値の設定方法がわからなかったため、調べた結果を残します。

デフォルト値の指定方法

dropwizard の configure メソッドで、Command の parameter を定義しますが、
addArgumentした後に、
setDefault()デフォルト値を設定可能でした。

    @Override
    public void configure(Subparser subparser) {
        // Add a command line option
        subparser.addArgument("-m", "--mode")
                .dest("mode")
                .type(String.class)
                .setDefault("OLD_DONE")
                .help("The mode of Command. default OLD_DONE");
    }

デフォルト値設定すると、以下のように、パラメータなしでコマンドを実行した際に、
デフォルト値が効いてきます。

java -jar festivals4partypeople-batch-0.0.1.jar storeLastfmArtistProfiles 

ちなみに、required()いうメソッドもあり、
これをtrueで設定すると、parameter指定が必須になり、メッセージが出力されます。

05:07:36.731 [main] INFO  org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 5.2.4.Final
argument -m/--mode: expected one argument
usage: java -jar festivals4partypeople-batch-0.0.1.jar
       storeLastfmArtistProfiles -m MODE [-h]

Store data to LastfmArtistProfiles Document

optional arguments:
  -m MODE, --mode MODE   The mode of Command. default OLD_DONE (default: OLD_DONE)
  -h, --help             show this help message and exit

以上です。

コメント