Builders haven’t gone away, if that is what you are thinking. I think all Matt did was make it so you could use @PluginAttribute wherever you would have used @PluginBuilderAttribute. I am not really sure why. Nothing else should have changed.
Ralph > On Jan 16, 2020, at 8:35 AM, Volkan Yazıcı <[email protected]> wrote: > > Hello, > > Started working on replacing JsonLayout with LogstashLayout. I have > noticed that @PluginAttributeBuilder is deprecated in favor of > @PluginAttribute. I am not equipped with the sufficient background on > this decision's justification, but what I can tell is I find > @PluginAttribute unpleasant to work with due to following reasons: > > - Now I have a ctor with dozens of parameters that *must* be passed in > tests. Builders were indicating the context as well: > builder.setFooEnabled(true).setBarEnabled(false). Now that is all > gone: new FooLayout(..., true, true, false, false, true, ...). > > - I cannot pass dynamic defaults, that is, > @PluginAttribute(defaultString = TimeZone.getDefault().getID()) is not > possible. > > - I need to silence the formatter: @formatter:off. > > Would anybody mind explaining me what is the big win, please? Am I > missing something? > > Best regards. >
