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 2014/05/25 04:04:43 UTC

svn commit: r1597368 - in /logging/log4j/log4j2/trunk/log4j-core/src: main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java test/java/org/apache/logging/log4j/core/config/plugins/util/TypeConvertersTest.java

Author: mattsicker
Date: Sun May 25 02:04:43 2014
New Revision: 1597368

URL: http://svn.apache.org/r1597368
Log:
Add type conversion for Charset class.

Modified:
    logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java
    logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/util/TypeConvertersTest.java

Modified: logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java?rev=1597368&r1=1597367&r2=1597368&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/TypeConverters.java Sun May 25 02:04:43 2014
@@ -17,6 +17,7 @@
 
 package org.apache.logging.log4j.core.config.plugins.util;
 
+import java.nio.charset.Charset;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.regex.Pattern;
@@ -53,6 +54,7 @@ public final class TypeConverters {
         registry.put(Float.class, new FloatConverter());
         registry.put(Double.class, new DoubleConverter());
         registry.put(Pattern.class, new PatternConverter());
+        registry.put(Charset.class, new CharsetConverter());
         registry.put(Level.class, new LevelConverter());
         registry.put(Filter.Result.class, new FilterResultConverter());
     }
@@ -195,6 +197,16 @@ public final class TypeConverters {
     }
 
     /**
+     * Parses strings into character sets.
+     */
+    private static class CharsetConverter implements TypeConverter<Charset> {
+        @Override
+        public Charset convert(final String s) {
+            return Charset.forName(s);
+        }
+    }
+
+    /**
      * Parses strings into Log4j Levels. Returns {@code null} for invalid level names.
      */
     private static class LevelConverter implements TypeConverter<Level> {

Modified: logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/util/TypeConvertersTest.java
URL: http://svn.apache.org/viewvc/logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/util/TypeConvertersTest.java?rev=1597368&r1=1597367&r2=1597368&view=diff
==============================================================================
--- logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/util/TypeConvertersTest.java (original)
+++ logging/log4j/log4j2/trunk/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/util/TypeConvertersTest.java Sun May 25 02:04:43 2014
@@ -17,11 +17,13 @@
 
 package org.apache.logging.log4j.core.config.plugins.util;
 
+import java.nio.charset.Charset;
 import java.util.Arrays;
 import java.util.Collection;
 
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.util.Charsets;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -71,6 +73,12 @@ public class TypeConvertersTest {
                 { "3.14", 0L, "0", Long.class },
                 { "*3", 1000L, "1000", Long.class },
                 { null, null, null, Long.class },
+                // charsets
+                { "UTF-8", Charsets.UTF_8, null, Charset.class },
+                { "ASCII", Charset.forName("ASCII"), "UTF-8", Charset.class },
+                { "Not a real charset", Charsets.UTF_8, "UTF-8", Charset.class },
+                { null, Charsets.UTF_8, "UTF-8", Charset.class },
+                { null, null, null, Charset.class },
                 // levels
                 { "ERROR", Level.ERROR, null, Level.class },
                 { "WARN", Level.WARN, null, Level.class },