I'd like to highlight this as an example of how the latest updates the plugin system allow for using methods and default name providers.
On Sun, 6 Oct 2019 at 21:18, <mattsic...@apache.org> wrote: > > This is an automated email from the ASF dual-hosted git repository. > > mattsicker pushed a commit to branch master > in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git > > > The following commit(s) were added to refs/heads/master by this push: > new 9788eee Use method injection in ListAppender > 9788eee is described below > > commit 9788eee10851d0edb20b79295fb49d05151819e4 > Author: Matt Sicker <boa...@gmail.com> > AuthorDate: Sun Oct 6 21:17:57 2019 -0500 > > Use method injection in ListAppender > > Quick smoke test for method-based injection. > > Signed-off-by: Matt Sicker <boa...@gmail.com> > --- > .../logging/log4j/test/appender/ListAppender.java | 18 > +++++++----------- > 1 file changed, 7 insertions(+), 11 deletions(-) > > diff --git > a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java > > b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java > index c6cd275..1f9ec2d 100644 > --- > a/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java > +++ > b/log4j-core/src/test/java/org/apache/logging/log4j/test/appender/ListAppender.java > @@ -26,7 +26,7 @@ import > org.apache.logging.log4j.core.appender.AbstractAppender; > import org.apache.logging.log4j.core.config.Property; > import org.apache.logging.log4j.core.impl.MutableLogEvent; > import org.apache.logging.log4j.plugins.Plugin; > -import org.apache.logging.log4j.plugins.PluginBuilderAttribute; > +import org.apache.logging.log4j.plugins.PluginAttribute; > import org.apache.logging.log4j.plugins.PluginElement; > import org.apache.logging.log4j.plugins.PluginFactory; > import org.apache.logging.log4j.plugins.validation.constraints.Required; > @@ -230,42 +230,38 @@ public class ListAppender extends AbstractAppender { > > public static class Builder implements > org.apache.logging.log4j.plugins.util.Builder<ListAppender> { > > - @PluginBuilderAttribute > - @Required > private String name; > - > - @PluginBuilderAttribute > private boolean entryPerNewLine; > - > - @PluginBuilderAttribute > private boolean raw; > - > - @PluginElement("Layout") > private Layout<? extends Serializable> layout; > - > - @PluginElement("Filter") > private Filter filter; > > + @PluginAttribute > + @Required > public Builder setName(final String name) { > this.name = name; > return this; > } > > + @PluginAttribute > public Builder setEntryPerNewLine(final boolean entryPerNewLine) { > this.entryPerNewLine = entryPerNewLine; > return this; > } > > + @PluginAttribute > public Builder setRaw(final boolean raw) { > this.raw = raw; > return this; > } > > + @PluginElement > public Builder setLayout(final Layout<? extends Serializable> > layout) { > this.layout = layout; > return this; > } > > + @PluginElement > public Builder setFilter(final Filter filter) { > this.filter = filter; > return this; > -- Matt Sicker Secretary, Apache Software Foundation VP Logging Services, ASF