Author: ggregory
Date: Wed May 28 03:48:26 2014
New Revision: 1597922
URL: http://svn.apache.org/r1597922
Log:
Add type converters for char[] and byte[].
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=1597922&r1=1597921&r2=1597922&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
Wed May 28 03:48:26 2014
@@ -54,6 +54,8 @@ public final class TypeConverters {
*/
private TypeConverters() {
registry.put(String.class, new StringConverter());
+ registry.put(char[].class, new CharArrayConverter());
+ registry.put(byte[].class, new ByteArrayConverter());
registry.put(Boolean.class, new BooleanConverter());
registry.put(boolean.class, registry.get(Boolean.class));
registry.put(Integer.class, new IntegerConverter());
@@ -155,6 +157,26 @@ public final class TypeConverters {
}
/**
+ * Parses Strings into char[]s.
+ */
+ private static class CharArrayConverter implements TypeConverter<char[]> {
+ @Override
+ public char[] convert(final String s) {
+ return s.toCharArray();
+ }
+ }
+
+ /**
+ * Parses Strings into byte[]s.
+ */
+ private static class ByteArrayConverter implements TypeConverter<byte[]> {
+ @Override
+ public byte[] convert(final String s) {
+ return s.getBytes(Charset.defaultCharset());
+ }
+ }
+
+ /**
* Parses strings into booleans.
*/
private static class BooleanConverter implements TypeConverter<Boolean> {
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=1597922&r1=1597921&r2=1597922&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
Wed May 28 03:48:26 2014
@@ -113,6 +113,9 @@ public class TypeConvertersTest {
{ "Cron", Facility.CRON, null, Facility.class },
{ "not a real facility", Facility.AUTH, "auth", Facility.class
},
{ null, null, null, Facility.class },
+ // arrays
+ { "123", "123".toCharArray(), null, char[].class },
+ { "123", "123".getBytes(Charset.defaultCharset()), null,
byte[].class },
}
);
}
@@ -133,6 +136,11 @@ public class TypeConvertersTest {
public void testConvert() throws Exception {
final Object actual = TypeConverters.convert(value, clazz,
defaultValue);
final String assertionMessage = "\nGiven: " + value + "\nDefault: " +
defaultValue;
- assertEquals(assertionMessage, expected, actual);
- }
+ if (expected != null && expected instanceof char[]) {
+ assertArrayEquals(assertionMessage, (char[]) expected, (char[])
actual);
+ } else if (expected != null && expected instanceof byte[]) {
+ assertArrayEquals(assertionMessage, (byte[]) expected, (byte[])
actual);
+ } else {
+ assertEquals(assertionMessage, expected, actual);
+ }}
}