You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2016/03/06 21:01:23 UTC

[2/2] logging-log4j2 git commit: Use final and reduce code redundancy.

Use final and reduce code redundancy.


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

Branch: refs/heads/master
Commit: 60922b3e6d45d8c3ff1912c7e2fcb18a0ec14844
Parents: 722aa88
Author: Matt Sicker <bo...@gmail.com>
Authored: Sun Mar 6 14:00:33 2016 -0600
Committer: Matt Sicker <bo...@gmail.com>
Committed: Sun Mar 6 14:00:45 2016 -0600

----------------------------------------------------------------------
 .../PropertiesConfigurationBuilder.java         | 204 +++++++------------
 1 file changed, 72 insertions(+), 132 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/60922b3e/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
index 589971a..41802d4 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
@@ -70,52 +70,30 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
 
     @Override
     public PropertiesConfiguration build() {
-        String value = rootProperties.getProperty(STATUS_KEY);
-        if (value != null) {
-            builder.setStatusLevel(Level.toLevel(value, Level.ERROR));
-        } else {
-            builder.setStatusLevel(Level.ERROR);
-        }
-        value = rootProperties.getProperty(SHUTDOWN_HOOK);
-        if (value != null) {
-            builder.setShutdownHook(value);
-        }
-        value = rootProperties.getProperty(VERBOSE);
-        if (value != null) {
-            builder.setVerbosity(value);
-        }
-        value = rootProperties.getProperty(PACKAGES);
-        if (value != null) {
-            builder.setPackages(value);
-        }
-        value = rootProperties.getProperty(CONFIG_NAME);
-        if (value != null) {
-            builder.setConfigurationName(value);
-        }
-        value = rootProperties.getProperty(MONITOR_INTERVAL);
-        if (value != null) {
-            builder.setMonitorInterval(value);
-        }
-        value = rootProperties.getProperty(ADVERTISER_KEY);
-        if (value != null) {
-            builder.setAdvertiser(value);
-        }
-        Properties props = PropertiesUtil.extractSubset(rootProperties, "property");
-        for (String key : props.stringPropertyNames()) {
-            builder.addProperty(key, props.getProperty(key));
+        builder
+            .setStatusLevel(Level.toLevel(rootProperties.getProperty(STATUS_KEY), Level.ERROR))
+            .setShutdownHook(rootProperties.getProperty(SHUTDOWN_HOOK))
+            .setVerbosity(rootProperties.getProperty(VERBOSE))
+            .setPackages(rootProperties.getProperty(PACKAGES))
+            .setConfigurationName(rootProperties.getProperty(CONFIG_NAME))
+            .setMonitorInterval(rootProperties.getProperty(MONITOR_INTERVAL, "0"))
+            .setAdvertiser(rootProperties.getProperty(ADVERTISER_KEY));
+
+        final Properties propertyPlaceholders = PropertiesUtil.extractSubset(rootProperties, "property");
+        for (final String key : propertyPlaceholders.stringPropertyNames()) {
+            builder.addProperty(key, propertyPlaceholders.getProperty(key));
         }
 
-        String scriptProp = rootProperties.getProperty("scripts");
+        final String scriptProp = (String) rootProperties.remove("scripts");
         if (scriptProp != null) {
-            String[] scriptNames = scriptProp.split(",");
-            for (String scriptName : scriptNames) {
-                String name = scriptName.trim();
-                Properties scriptProps = PropertiesUtil.extractSubset(rootProperties, "script." + name);
-                String type = scriptProps.getProperty("type");
+            final String[] scriptNames = scriptProp.split(",");
+            for (final String scriptName : scriptNames) {
+                final String name = scriptName.trim();
+                final Properties scriptProps = PropertiesUtil.extractSubset(rootProperties, "script." + name);
+                final String type = (String) scriptProps.remove("type");
                 if (type == null) {
                     throw new ConfigurationException("No type provided for script - must be Script or ScriptFile");
                 }
-                scriptProps.remove("type");
                 if (type.equalsIgnoreCase("script")) {
                     builder.add(createScript(scriptProps));
                 } else {
@@ -124,94 +102,78 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
             }
         }
 
-        Properties levelProps = PropertiesUtil.extractSubset(rootProperties, "customLevel");
+        final Properties levelProps = PropertiesUtil.extractSubset(rootProperties, "customLevel");
         if (levelProps.size() > 0) {
-            for (String key : levelProps.stringPropertyNames()) {
-                builder.add(builder.newCustomLevel(key, Integer.parseInt(props.getProperty(key))));
+            for (final String key : levelProps.stringPropertyNames()) {
+                builder.add(builder.newCustomLevel(key, Integer.parseInt(levelProps.getProperty(key))));
             }
         }
 
-        String filterProp = rootProperties.getProperty("filters");
+        final String filterProp = (String) rootProperties.remove("filters");
         if (filterProp != null) {
-            String[] filterNames = filterProp.split(",");
-            for (String filterName : filterNames) {
-                String name = filterName.trim();
+            final String[] filterNames = filterProp.split(",");
+            for (final String filterName : filterNames) {
+                final String name = filterName.trim();
                 builder.add(createFilter(name, PropertiesUtil.extractSubset(rootProperties, "filter." + name)));
             }
         }
-        String appenderProp = rootProperties.getProperty("appenders");
+
+        final String appenderProp = (String) rootProperties.remove("appenders");
         if (appenderProp != null) {
-            String[] appenderNames = appenderProp.split(",");
-            for (String appenderName : appenderNames) {
-                String name = appenderName.trim();
+            final String[] appenderNames = appenderProp.split(",");
+            for (final String appenderName : appenderNames) {
+                final String name = appenderName.trim();
                 builder.add(createAppender(name, PropertiesUtil.extractSubset(rootProperties, "appender." + name)));
             }
         }
-        String loggerProp = rootProperties.getProperty("loggers");
+
+        final String loggerProp = (String) rootProperties.remove("loggers");
         if (loggerProp != null) {
-            String[] loggerNames = loggerProp.split(",");
-            for (String loggerName : loggerNames) {
-                String name = loggerName.trim();
+            final String[] loggerNames = loggerProp.split(",");
+            for (final String loggerName : loggerNames) {
+                final String name = loggerName.trim();
                 if (!name.equals(LoggerConfig.ROOT)) {
                     builder.add(createLogger(name, PropertiesUtil.extractSubset(rootProperties, "logger." + name)));
                 }
             }
         }
 
-        props = PropertiesUtil.extractSubset(rootProperties, "rootLogger");
+        final Properties props = PropertiesUtil.extractSubset(rootProperties, "rootLogger");
         if (props.size() > 0) {
             builder.add(createRootLogger(props));
         }
 
-
         return builder.build();
     }
 
     private ScriptComponentBuilder createScript(final Properties properties) {
-        String name = properties.getProperty("name");
-        if (name != null) {
-            properties.remove("name");
-        }
-        String language = properties.getProperty("language");
-        if (language != null) {
-            properties.remove("language");
-        }
-        String text = properties.getProperty("text");
-        if (text != null) {
-            properties.remove("text");
-        }
-        ScriptComponentBuilder scriptBuilder = builder.newScript(name, language, text);
+        final String name = (String) properties.remove("name");
+        final String language = (String) properties.remove("language");
+        final String text = (String) properties.remove("text");
+        final ScriptComponentBuilder scriptBuilder = builder.newScript(name, language, text);
         return processRemainingProperties(scriptBuilder, properties);
     }
 
 
     private ScriptFileComponentBuilder createScriptFile(final Properties properties) {
-        String name = properties.getProperty("name");
-        if (name != null) {
-            properties.remove("name");
-        }
-        String path = properties.getProperty("path");
-        if (path != null) {
-            properties.remove("path");
-        }
-        ScriptFileComponentBuilder scriptFileBuilder = builder.newScriptFile(name, path);
+        final String name = (String) properties.remove("name");
+        final String path = (String) properties.remove("path");
+        final ScriptFileComponentBuilder scriptFileBuilder = builder.newScriptFile(name, path);
         return processRemainingProperties(scriptFileBuilder, properties);
     }
 
     private AppenderComponentBuilder createAppender(final String key, final Properties properties) {
-        String name = properties.getProperty(CONFIG_NAME);
+        final String name = (String) properties.remove(CONFIG_NAME);
         if (Strings.isEmpty(name)) {
             throw new ConfigurationException("No name attribute provided for Appender " + key);
         }
-        properties.remove(CONFIG_NAME);
-        String type = properties.getProperty(CONFIG_TYPE);
+        final String type = (String) properties.remove(CONFIG_TYPE);
         if (Strings.isEmpty(type)) {
             throw new ConfigurationException("No type attribute provided for Appender " + key);
         }
-        properties.remove(CONFIG_TYPE);
-        AppenderComponentBuilder appenderBuilder = builder.newAppender(name, type);
+        final AppenderComponentBuilder appenderBuilder = builder.newAppender(name, type);
         addFiltersToComponent(appenderBuilder, properties);
-        Properties layoutProps = PropertiesUtil.extractSubset(properties, "layout");
+        final Properties layoutProps = PropertiesUtil.extractSubset(properties, "layout");
         if (layoutProps.size() > 0) {
             appenderBuilder.add(createLayout(name, layoutProps));
         }
@@ -220,31 +182,23 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
     }
 
     private FilterComponentBuilder createFilter(final String key, final Properties properties) {
-        String type = properties.getProperty(CONFIG_TYPE);
+        final String type = (String) properties.remove(CONFIG_TYPE);
         if (Strings.isEmpty(type)) {
             throw new ConfigurationException("No type attribute provided for Appender " + key);
         }
-        properties.remove(CONFIG_TYPE);
-        String onMatch = properties.getProperty("onMatch");
-        if (onMatch != null) {
-            properties.remove("onMatch");
-        }
-        String onMisMatch = properties.getProperty("onMisMatch");
-        if (onMisMatch != null) {
-            properties.remove("onMisMatch");
-        }
-        FilterComponentBuilder filterBuilder = builder.newFilter(type, onMatch, onMisMatch);
+        final String onMatch = (String) properties.remove("onMatch");
+        final String onMisMatch = (String) properties.remove("onMisMatch");
+        final FilterComponentBuilder filterBuilder = builder.newFilter(type, onMatch, onMisMatch);
         return processRemainingProperties(filterBuilder, properties);
     }
 
     private AppenderRefComponentBuilder createAppenderRef(final String key, final Properties properties) {
-        String ref = properties.getProperty("ref");
+        final String ref = (String) properties.remove("ref");
         if (Strings.isEmpty(ref)) {
             throw new ConfigurationException("No ref attribute provided for AppenderRef " + key);
         }
-        properties.remove("ref");
-        AppenderRefComponentBuilder appenderRefBuilder = builder.newAppenderRef(ref);
-        String level = properties.getProperty("level");
+        final AppenderRefComponentBuilder appenderRefBuilder = builder.newAppenderRef(ref);
+        final String level = (String) properties.remove("level");
         if (!Strings.isEmpty(level)) {
             appenderRefBuilder.addAttribute("level", level);
         }
@@ -252,17 +206,13 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
     }
 
     private LoggerComponentBuilder createLogger(final String key, final Properties properties) {
-        String name = properties.getProperty(CONFIG_NAME);
+        final String name = (String) properties.remove(CONFIG_NAME);
         if (Strings.isEmpty(name)) {
             throw new ConfigurationException("No name attribute provided for Logger " + key);
         }
-        properties.remove(CONFIG_NAME);
-        String level = properties.getProperty("level");
-        if (level != null) {
-            properties.remove("level");
-        }
-        LoggerComponentBuilder loggerBuilder;
-        String type = properties.getProperty(CONFIG_TYPE);
+        final String level = (String) properties.remove("level");
+        final String type = (String) properties.remove(CONFIG_TYPE);
+        final LoggerComponentBuilder loggerBuilder;
         if (type != null) {
             if (type.equalsIgnoreCase("asyncLogger")) {
                 loggerBuilder = builder.newAsyncLogger(name, level);
@@ -274,7 +224,7 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
         }
         addLoggersToComponent(loggerBuilder, properties);
         addFiltersToComponent(loggerBuilder, properties);
-        String additivity = properties.getProperty("additivity");
+        final String additivity = (String) properties.remove("additivity");
         if (!Strings.isEmpty(additivity)) {
             loggerBuilder.addAttribute("additivity", additivity);
         }
@@ -282,12 +232,9 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
     }
 
     private RootLoggerComponentBuilder createRootLogger(final Properties properties) {
-        String level = properties.getProperty("level");
-        if (level != null) {
-            properties.remove("level");
-        }
-        RootLoggerComponentBuilder loggerBuilder;
-        String type = properties.getProperty(CONFIG_TYPE);
+        final String level = (String) properties.remove("level");
+        final String type = (String) properties.remove(CONFIG_TYPE);
+        final RootLoggerComponentBuilder loggerBuilder;
         if (type != null) {
             if (type.equalsIgnoreCase("asyncRoot")) {
                 loggerBuilder = builder.newAsyncRootLogger(level);
@@ -302,39 +249,34 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
     }
 
     private LayoutComponentBuilder createLayout(final String appenderName, final Properties properties) {
-        String type = properties.getProperty(CONFIG_TYPE);
+        final String type = (String) properties.remove(CONFIG_TYPE);
         if (Strings.isEmpty(type)) {
             throw new ConfigurationException("No type attribute provided for Layout on Appender " + appenderName);
         }
-        properties.remove(CONFIG_TYPE);
-        LayoutComponentBuilder layoutBuilder = builder.newLayout(type);
+        final LayoutComponentBuilder layoutBuilder = builder.newLayout(type);
         return processRemainingProperties(layoutBuilder, properties);
     }
 
     private static <B extends ComponentBuilder<B>> ComponentBuilder<B> createComponent(final ComponentBuilder<?> parent,
                                                                                        final String key,
                                                                                        final Properties properties) {
-        String name = properties.getProperty(CONFIG_NAME);
-        if (name != null) {
-            properties.remove(CONFIG_NAME);
-        }
-        String type = properties.getProperty(CONFIG_TYPE);
+        final String name = (String) properties.remove(CONFIG_NAME);
+        final String type = (String) properties.remove(CONFIG_TYPE);
         if (Strings.isEmpty(type)) {
             throw new ConfigurationException("No type attribute provided for component " + key);
         }
-        properties.remove(CONFIG_TYPE);
-        ComponentBuilder<B> componentBuilder = parent.getBuilder().newComponent(name, type);
+        final ComponentBuilder<B> componentBuilder = parent.getBuilder().newComponent(name, type);
         return processRemainingProperties(componentBuilder, properties);
     }
 
     private static <B extends ComponentBuilder<?>> B processRemainingProperties(final B builder,
                                                                                 final Properties properties) {
         while (properties.size() > 0) {
-            String propertyName = properties.stringPropertyNames().iterator().next();
+            final String propertyName = properties.stringPropertyNames().iterator().next();
             int index = propertyName.indexOf('.');
             if (index > 0) {
-                String prefix = propertyName.substring(0, index);
-                Properties componentProperties = PropertiesUtil.extractSubset(properties, prefix);
+                final String prefix = propertyName.substring(0, index);
+                final Properties componentProperties = PropertiesUtil.extractSubset(properties, prefix);
                 builder.addComponent(createComponent(builder, prefix, componentProperties));
             } else {
                 builder.addAttribute(propertyName, properties.getProperty(propertyName));
@@ -346,9 +288,8 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
 
     private <B extends FilterableComponentBuilder<? extends ComponentBuilder<?>>> B addFiltersToComponent(
         final B componentBuilder, final Properties properties) {
-        final String filters = properties.getProperty("filters");
+        final String filters = (String) properties.remove("filters");
         if (filters != null) {
-            properties.remove("filters");
             final String[] filterNames = filters.split(",");
             for (final String name : filterNames) {
                 final String filterName = name.trim();
@@ -361,9 +302,8 @@ public class PropertiesConfigurationBuilder extends ConfigurationBuilderFactory
 
     private <B extends LoggableComponentBuilder<? extends ComponentBuilder<?>>> B addLoggersToComponent(
         final B loggerBuilder, final Properties properties) {
-        final String appenderRefs = properties.getProperty("appenderRefs");
+        final String appenderRefs = (String) properties.remove("appenderRefs");
         if (appenderRefs != null) {
-            properties.remove("appenderRefs");
             final String[] refNames = appenderRefs.split(",");
             for (final String refName : refNames) {
                 final String appenderRef = refName.trim();