Repository: logging-log4j2
Updated Branches:
  refs/heads/master 42c89a28e -> 7fe651d01


[LOG4J2-1578] RoutingAppender can be configured with scripts. 

Remove unused lvar.

Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/9991bef3
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/9991bef3
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/9991bef3

Branch: refs/heads/master
Commit: 9991bef3e8427df01cbccd68bb6ebf56457449b0
Parents: 42c89a2
Author: Gary Gregory <[email protected]>
Authored: Wed Sep 14 12:24:31 2016 -0700
Committer: Gary Gregory <[email protected]>
Committed: Wed Sep 14 12:24:31 2016 -0700

----------------------------------------------------------------------
 .../log4j/core/appender/routing/Routes.java     | 443 +++++++++----------
 1 file changed, 221 insertions(+), 222 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/9991bef3/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 060fc9b..4a62542 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
@@ -1,222 +1,221 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache license, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the license for the specific language governing permissions and
- * limitations under the license.
- */
-package org.apache.logging.log4j.core.appender.routing;
-
-import java.util.Objects;
-
-import javax.script.Bindings;
-
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.core.config.Configuration;
-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.PluginConfiguration;
-import org.apache.logging.log4j.core.config.plugins.PluginElement;
-import 
org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
-import org.apache.logging.log4j.core.script.AbstractScript;
-import org.apache.logging.log4j.core.script.ScriptManager;
-import org.apache.logging.log4j.status.StatusLogger;
-
-/**
- * Contains the individual Route elements.
- */
-@Plugin(name = "Routes", category = "Core", printObject = true)
-public final class Routes {
-
-    public static class Builder implements 
org.apache.logging.log4j.core.util.Builder<Routes>  {
-
-        @PluginConfiguration 
-        private Configuration configuration;
-
-        @PluginAttribute("pattern") 
-        private String pattern;
-        
-        @PluginElement("Script")
-        private AbstractScript patternScript;
-
-        @PluginElement("Routes")
-        @Required
-        private Route[] routes;
-
-        @Override
-        public Routes build() {
-            if (routes == null || routes.length == 0) {
-                LOGGER.error("No Routes configured.");
-                return null;
-            }
-            if (patternScript != null && pattern != null) {
-                LOGGER.warn("In a Routes element, you must configure either a 
Script element or a pattern attribute.");
-            }
-            Bindings bindings = null;
-            if (patternScript != null) {
-                if (configuration == null) {
-                    LOGGER.error("No Configuration defined for Routes; 
required for Script");
-                } else {
-                    configuration.getScriptManager().addScript(patternScript);
-                }
-            }
-            return new Routes(configuration, patternScript, pattern, routes);
-        }
-
-        public Configuration getConfiguration() {
-            return configuration;
-        }
-
-        public String getPattern() {
-            return pattern;
-        }
-
-        public AbstractScript getPatternScript() {
-            return patternScript;
-        }
-
-        public Route[] getRoutes() {
-            return routes;
-        }
-
-        public Builder withConfiguration(@SuppressWarnings("hiding") final 
Configuration configuration) {
-            this.configuration = configuration;
-            return this;
-        }
-
-        public Builder withPattern(@SuppressWarnings("hiding") final String 
pattern) {
-            this.pattern = pattern;
-            return this;
-        }
-
-        public Builder withPatternScript(@SuppressWarnings("hiding") final 
AbstractScript patternScript) {
-            this.patternScript = patternScript;
-            return this;
-        }
-
-        public Builder withRoutes(@SuppressWarnings("hiding") final Route[] 
routes) {
-            this.routes = routes;
-            return this;
-        }
-        
-    }
-
-    private static final Logger LOGGER = StatusLogger.getLogger();
-
-    /**
-     * Creates the Routes.
-     * @param pattern The pattern.
-     * @param routes An array of Route elements.
-     * @return The Routes container.
-     * @deprecated since 2.7; use {@link #newBuilder()}.
-     */
-    @Deprecated
-    public static Routes createRoutes(
-            final String pattern,
-            final Route... routes) {
-        if (routes == null || routes.length == 0) {
-            LOGGER.error("No routes configured");
-            return null;
-        }
-        return new Routes(null, null, pattern, routes);
-    }
-
-    @PluginBuilderFactory
-    public static Builder newBuilder() {
-        return new Builder();
-    }
-    
-    private Bindings bindings;
-    
-    private final Configuration configuration;
-    
-    private final String pattern;
-
-    private final AbstractScript patternScript;
-    
-    // TODO Why not make this a Map or add a Map.
-    private final Route[] routes;
-
-    private Routes(final Configuration configuration, final AbstractScript 
patternScript, final String pattern, final Route... routes) {
-        this.configuration = configuration;
-        this.patternScript = patternScript;
-        this.pattern = pattern;
-        this.routes = routes;
-    }
-
-    public Bindings getBindings() {
-        return bindings;
-    }
-
-    /**
-     * Returns the pattern.
-     * @return the pattern.
-     */
-    public String getPattern() {
-        if (patternScript != null) {
-            final ScriptManager scriptManager = 
configuration.getScriptManager();
-            if (bindings == null) {
-                bindings = scriptManager.createBindings(patternScript);
-            }
-            final Object object = 
scriptManager.execute(patternScript.getName(), bindings);
-            return Objects.toString(object, null);
-        }
-        return pattern;
-    }
-
-    /**
-     * Gets the optional script that decides which route to pick.
-     * @return the optional script that decides which route to pick. May be 
null.
-     */
-    public AbstractScript getPatternScript() {
-        return patternScript;
-    }
-
-    public Route getRoute(final String key) {
-        for (final Route route : routes) {
-            if (Objects.equals(route.getKey(), key)) {
-                return route;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the array of Route elements.
-     * @return an array of Route elements.
-     */
-    public Route[] getRoutes() {
-        return routes;
-    }
-
-    public void setBindings(final Bindings bindings) {
-        this.bindings = bindings;
-    }
-
-    @Override
-    public String toString() {
-        final StringBuilder sb = new StringBuilder("{");
-        boolean first = true;
-        for (final Route route : routes) {
-            if (!first) {
-                sb.append(',');
-            }
-            first = false;
-            sb.append(route.toString());
-        }
-        sb.append('}');
-        return sb.toString();
-
-    }
-
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.core.appender.routing;
+
+import java.util.Objects;
+
+import javax.script.Bindings;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.core.config.Configuration;
+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.PluginConfiguration;
+import org.apache.logging.log4j.core.config.plugins.PluginElement;
+import 
org.apache.logging.log4j.core.config.plugins.validation.constraints.Required;
+import org.apache.logging.log4j.core.script.AbstractScript;
+import org.apache.logging.log4j.core.script.ScriptManager;
+import org.apache.logging.log4j.status.StatusLogger;
+
+/**
+ * Contains the individual Route elements.
+ */
+@Plugin(name = "Routes", category = "Core", printObject = true)
+public final class Routes {
+
+    public static class Builder implements 
org.apache.logging.log4j.core.util.Builder<Routes>  {
+
+        @PluginConfiguration 
+        private Configuration configuration;
+
+        @PluginAttribute("pattern") 
+        private String pattern;
+        
+        @PluginElement("Script")
+        private AbstractScript patternScript;
+
+        @PluginElement("Routes")
+        @Required
+        private Route[] routes;
+
+        @Override
+        public Routes build() {
+            if (routes == null || routes.length == 0) {
+                LOGGER.error("No Routes configured.");
+                return null;
+            }
+            if (patternScript != null && pattern != null) {
+                LOGGER.warn("In a Routes element, you must configure either a 
Script element or a pattern attribute.");
+            }
+            if (patternScript != null) {
+                if (configuration == null) {
+                    LOGGER.error("No Configuration defined for Routes; 
required for Script");
+                } else {
+                    configuration.getScriptManager().addScript(patternScript);
+                }
+            }
+            return new Routes(configuration, patternScript, pattern, routes);
+        }
+
+        public Configuration getConfiguration() {
+            return configuration;
+        }
+
+        public String getPattern() {
+            return pattern;
+        }
+
+        public AbstractScript getPatternScript() {
+            return patternScript;
+        }
+
+        public Route[] getRoutes() {
+            return routes;
+        }
+
+        public Builder withConfiguration(@SuppressWarnings("hiding") final 
Configuration configuration) {
+            this.configuration = configuration;
+            return this;
+        }
+
+        public Builder withPattern(@SuppressWarnings("hiding") final String 
pattern) {
+            this.pattern = pattern;
+            return this;
+        }
+
+        public Builder withPatternScript(@SuppressWarnings("hiding") final 
AbstractScript patternScript) {
+            this.patternScript = patternScript;
+            return this;
+        }
+
+        public Builder withRoutes(@SuppressWarnings("hiding") final Route[] 
routes) {
+            this.routes = routes;
+            return this;
+        }
+        
+    }
+
+    private static final Logger LOGGER = StatusLogger.getLogger();
+
+    /**
+     * Creates the Routes.
+     * @param pattern The pattern.
+     * @param routes An array of Route elements.
+     * @return The Routes container.
+     * @deprecated since 2.7; use {@link #newBuilder()}.
+     */
+    @Deprecated
+    public static Routes createRoutes(
+            final String pattern,
+            final Route... routes) {
+        if (routes == null || routes.length == 0) {
+            LOGGER.error("No routes configured");
+            return null;
+        }
+        return new Routes(null, null, pattern, routes);
+    }
+
+    @PluginBuilderFactory
+    public static Builder newBuilder() {
+        return new Builder();
+    }
+    
+    private Bindings bindings;
+    
+    private final Configuration configuration;
+    
+    private final String pattern;
+
+    private final AbstractScript patternScript;
+    
+    // TODO Why not make this a Map or add a Map.
+    private final Route[] routes;
+
+    private Routes(final Configuration configuration, final AbstractScript 
patternScript, final String pattern, final Route... routes) {
+        this.configuration = configuration;
+        this.patternScript = patternScript;
+        this.pattern = pattern;
+        this.routes = routes;
+    }
+
+    public Bindings getBindings() {
+        return bindings;
+    }
+
+    /**
+     * Returns the pattern.
+     * @return the pattern.
+     */
+    public String getPattern() {
+        if (patternScript != null) {
+            final ScriptManager scriptManager = 
configuration.getScriptManager();
+            if (bindings == null) {
+                bindings = scriptManager.createBindings(patternScript);
+            }
+            final Object object = 
scriptManager.execute(patternScript.getName(), bindings);
+            return Objects.toString(object, null);
+        }
+        return pattern;
+    }
+
+    /**
+     * Gets the optional script that decides which route to pick.
+     * @return the optional script that decides which route to pick. May be 
null.
+     */
+    public AbstractScript getPatternScript() {
+        return patternScript;
+    }
+
+    public Route getRoute(final String key) {
+        for (final Route route : routes) {
+            if (Objects.equals(route.getKey(), key)) {
+                return route;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Returns the array of Route elements.
+     * @return an array of Route elements.
+     */
+    public Route[] getRoutes() {
+        return routes;
+    }
+
+    public void setBindings(final Bindings bindings) {
+        this.bindings = bindings;
+    }
+
+    @Override
+    public String toString() {
+        final StringBuilder sb = new StringBuilder("{");
+        boolean first = true;
+        for (final Route route : routes) {
+            if (!first) {
+                sb.append(',');
+            }
+            first = false;
+            sb.append(route.toString());
+        }
+        sb.append('}');
+        return sb.toString();
+
+    }
+
+}

Reply via email to