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 },