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: <ggreg...@apache.org>
Date: 13 September 2016 at 22:59
Subject: [2/2] logging-log4j2 git commit: Deprecate factory method in favor
of a builder.
To: comm...@logging.apache.org


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 <ggreg...@apache.org>
Authored: Tue Sep 13 20:58:56 2016 -0700
Committer: Gary Gregory <ggreg...@apache.org>
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/
3846e2a8/log4j-core/src/main/java/org/apache/logging/log4j/
core/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/
appender/routing/Routes.java
index aae4087..c95b64a 100644
--- 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/
appender/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 <boa...@gmail.com>

Reply via email to