Repository: logging-log4j2
Updated Branches:
  refs/heads/master 8a74e2288 -> 4c8a94a43


[LOG4J2-1758]: Add TypeConverter for Path


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

Branch: refs/heads/master
Commit: 4c8a94a43053e19136427e5d5ff9d3ad64244f39
Parents: 45961ef
Author: Matt Sicker <[email protected]>
Authored: Sat Dec 31 13:33:02 2016 -0600
Committer: Matt Sicker <[email protected]>
Committed: Sat Dec 31 13:34:54 2016 -0600

----------------------------------------------------------------------
 .../core/config/plugins/convert/TypeConverters.java   | 14 ++++++++++++++
 .../config/plugins/convert/TypeConvertersTest.java    |  9 ++++++++-
 src/changes/changes.xml                               |  5 ++++-
 3 files changed, 26 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4c8a94a4/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java
index 9c28edc..3d94f40 100644
--- 
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConverters.java
@@ -26,6 +26,8 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.nio.charset.Charset;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.security.Provider;
 import java.security.Security;
 import java.util.regex.Pattern;
@@ -277,6 +279,18 @@ public final class TypeConverters {
     }
 
     /**
+     * Converts a {@link String} into a {@link Path}.
+     * @since 2.8
+     */
+    @Plugin(name = "Path", category = CATEGORY)
+    public static class PathConverter implements TypeConverter<Path> {
+        @Override
+        public Path convert(final String s) throws Exception {
+            return Paths.get(s);
+        }
+    }
+
+    /**
      * Converts a {@link String} into a {@link Pattern}.
      */
     @Plugin(name = "Pattern", category = CATEGORY)

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4c8a94a4/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConvertersTest.java
----------------------------------------------------------------------
diff --git 
a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConvertersTest.java
 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConvertersTest.java
index c51a817..da426a9 100644
--- 
a/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConvertersTest.java
+++ 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/plugins/convert/TypeConvertersTest.java
@@ -20,10 +20,13 @@ package 
org.apache.logging.log4j.core.config.plugins.convert;
 import java.io.File;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.net.InetAddress;
 import java.net.URI;
 import java.net.URL;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.security.Provider;
 import java.security.Security;
 import java.util.Arrays;
@@ -176,7 +179,11 @@ public class TypeConvertersTest {
                 { Security.getProviders()[0].getName(), 
Security.getProviders()[0], null, Provider.class },
                 { "\n", null, null, Provider.class },
                 // Duration
-                { "P7DT10H", Duration.parse("P7DT10H"), null, Duration.class 
}, 
+                { "P7DT10H", Duration.parse("P7DT10H"), null, Duration.class },
+                // JRE InetAddress
+                { "127.0.0.1", InetAddress.getByName("127.0.0.1"), null, 
InetAddress.class },
+                // JRE Path
+                { "/path/to/file", Paths.get("/path", "to", "file"), null, 
Path.class },
             }
         );
     }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4c8a94a4/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index eba77b1..367b2ab 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -216,8 +216,11 @@
       <action issue="LOG4J2-1302" dev="rpopma" type="update">
         The log4j-slf4j-impl module now declares a runtime dependency on 
log4j-core. While not technically required, this makes the log4j-slf4j-impl 
module behave similarly to slf4j-log4j12, and facilitates migration to Log4j 2.
       </action>
+      <action issue="LOG4J2-1758" dev="mattsicker" type="add">
+        Add TypeConverter for java.nio.file.Path.
+      </action>
       <action issue="LOG4J2-1755" dev="mattsicker" type="add">
-        Add converters and validators related to hostnames and ports.
+        Add TypeConverter and constraint validators for java.net.InetAddress 
and port numbers.
       </action>
       <action issue="LOG4J2-969" dev="ggregory" type="add">
         Refactor SyslogAppender so that Layout is a Plugin element.

Reply via email to