Good to know, I'll add that. But... we still need the check in the builders
for programmatic configurations.

Gary

On Tue, Sep 13, 2016 at 9:11 PM, Matt Sicker <[email protected]> wrote:

> If you use @Required on an array, it checks for non-null and non-empty.
> Works on strings, collections, and maps with the same semantics.
>
> ---------- Forwarded message ----------
> From: <[email protected]>
> Date: 13 September 2016 at 22:59
> Subject: [2/2] logging-log4j2 git commit: Deprecate factory method in
> favor of a builder.
> To: [email protected]
>
>
> Deprecate factory method in favor of a builder.
>
> Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
> Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit
> /3846e2a8
> Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/3846e2a8
> Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/3846e2a8
>
> Branch: refs/heads/master
> Commit: 3846e2a87b94639466c7ab25b333fdb4ded8defc
> Parents: 981677f
> Author: Gary Gregory <[email protected]>
> Authored: Tue Sep 13 20:58:56 2016 -0700
> Committer: Gary Gregory <[email protected]>
> Committed: Tue Sep 13 20:58:56 2016 -0700
>
> ----------------------------------------------------------------------
>  .../log4j/core/appender/routing/Routes.java     | 51 ++++++++++++++++++--
>  1 file changed, 47 insertions(+), 4 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3
> 846e2a8/log4j-core/src/main/java/org/apache/logging/log4j/co
> re/appender/routing/Routes.java
> ----------------------------------------------------------------------
> diff --git 
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/routing/Routes.java
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/app
> ender/routing/Routes.java
> index aae4087..c95b64a 100644
> --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/app
> ender/routing/Routes.java
> +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/app
> ender/routing/Routes.java
> @@ -21,8 +21,8 @@ import java.util.Objects;
>  import org.apache.logging.log4j.Logger;
>  import org.apache.logging.log4j.core.config.plugins.Plugin;
>  import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
> +import org.apache.logging.log4j.core.config.plugins.PluginBuilderFactory;
>  import org.apache.logging.log4j.core.config.plugins.PluginElement;
> -import org.apache.logging.log4j.core.config.plugins.PluginFactory;
>  import org.apache.logging.log4j.status.StatusLogger;
>
>  /**
> @@ -31,6 +31,48 @@ import org.apache.logging.log4j.status.StatusLogger;
>  @Plugin(name = "Routes", category = "Core", printObject = true)
>  public final class Routes {
>
> +    public static class Builder implements 
> org.apache.logging.log4j.core.util.Builder<Routes>
> {
> +
> +        @PluginAttribute("pattern")
> +        private String pattern;
> +
> +        @PluginElement("Routes")
> +        private Route[] routes;
> +
> +        @Override
> +        public Routes build() {
> +            if (routes == null || routes.length == 0) {
> +                LOGGER.error("No routes configured");
> +                return null;
> +            }
> +            return new Routes(pattern, routes);
> +        }
> +
> +        public String getPattern() {
> +            return pattern;
> +        }
> +
> +        public Route[] getRoutes() {
> +            return routes;
> +        }
> +
> +        public Builder withPattern(@SuppressWarnings("hiding") String
> pattern) {
> +            this.pattern = pattern;
> +            return this;
> +        }
> +
> +        public Builder withRoutes(@SuppressWarnings("hiding") Route[]
> routes) {
> +            this.routes = routes;
> +            return this;
> +        }
> +
> +    }
> +
> +    @PluginBuilderFactory
> +    public static Builder newBuilder() {
> +        return new Builder();
> +    }
> +
>      private static final Logger LOGGER = StatusLogger.getLogger();
>
>      private final String pattern;
> @@ -90,11 +132,12 @@ public final class Routes {
>       * @param pattern The pattern.
>       * @param routes An array of Route elements.
>       * @return The Routes container.
> +     * @deprecated since 2.7; use {@link #newBuilder()}.
>       */
> -    @PluginFactory
> +    @Deprecated
>      public static Routes createRoutes(
> -            @PluginAttribute("pattern") final String pattern,
> -            @PluginElement("Routes") final Route... routes) {
> +            final String pattern,
> +            final Route... routes) {
>          if (routes == null || routes.length == 0) {
>              LOGGER.error("No routes configured");
>              return null;
>
>
>
>
> --
> Matt Sicker <[email protected]>
>



-- 
E-Mail: [email protected] | [email protected]
Java Persistence with Hibernate, Second Edition
<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to