2016-11-04 9 views
0

既存のデータフローパイプラインオプションの既定値をオーバーライドしたいと思います。 は例えば、私はこの既存のデータフローパイプラインオプションの既定値をオーバーライドする方法

public interface MyOptions extends DataflowPipelineOptions { 
    // Common options here. 
    @Override 
    @Default.Class(DataflowPipelineRunner.class) 
    Class<? extends PipelineRunner<?>> getRunner(); 
} 

... 

MyOptions options = PipelineOptionsFactory.fromArgs(args).withValidation().as(MyOptions.class); 

のように試みたが、これは動作しません。 既存のオプションのデフォルト値を上書きする方法はありますか?

答えて

1

私が知る限り、これは記述した形式では不可能です。カスタムデフォルト値を使用して「中間」カスタム引数を使用すると、次のようなことが実現できます。

public interface MyOptions extends PipelineOptions { 
    @Default.Class(DataflowPipelineRunner.class) 
    Class<? extends PipelineRunner<?>> getMyRunner(); 
} 

PipelineOptions options = PipelineOptionsFactory.fromArgs(args).withValidation(); 
options.as(DataflowPipelineOptions.class).setRunner(
    options.as(MyOptions.class).getMyRunner()); 
関連する問題