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

Reply via email to