LOG4J2-435 String to Duration converter and unit test Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/a7df71a1 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/a7df71a1 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/a7df71a1
Branch: refs/heads/master Commit: a7df71a13434af812c56190c4b3550cecf958e87 Parents: f14edc2 Author: rpopma <[email protected]> Authored: Sun Nov 15 04:24:15 2015 +0900 Committer: rpopma <[email protected]> Committed: Sun Nov 15 04:24:15 2015 +0900 ---------------------------------------------------------------------- .../core/config/plugins/convert/TypeConverters.java | 14 ++++++++++++++ .../config/plugins/convert/TypeConvertersTest.java | 3 +++ 2 files changed, 17 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a7df71a1/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 a28897c..d102294 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 @@ -28,10 +28,12 @@ import java.nio.charset.Charset; import java.security.Provider; import java.security.Security; import java.util.regex.Pattern; + import javax.xml.bind.DatatypeConverter; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.appender.rolling.action.Duration; import org.apache.logging.log4j.core.config.plugins.Plugin; import org.apache.logging.log4j.core.util.Loader; import org.apache.logging.log4j.status.StatusLogger; @@ -188,6 +190,18 @@ public final class TypeConverters { } /** + * Converts a {@link String} into a {@link Duration}. + * @since 2.5 + */ + @Plugin(name = "Duration", category = CATEGORY) + public static class DurationConverter implements TypeConverter<Duration> { + @Override + public Duration convert(final String s) { + return Duration.parse(s); + } + } + + /** * Converts a {@link String} into a {@link File}. */ @Plugin(name = "File", category = CATEGORY) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/a7df71a1/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 e5b4981..c51a817 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 @@ -31,6 +31,7 @@ import java.util.Collection; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.Filter; +import org.apache.logging.log4j.core.appender.rolling.action.Duration; import org.apache.logging.log4j.core.layout.GelfLayout; import org.apache.logging.log4j.core.net.Facility; import org.junit.Test; @@ -174,6 +175,8 @@ public class TypeConvertersTest { // JRE Security Provider { Security.getProviders()[0].getName(), Security.getProviders()[0], null, Provider.class }, { "\n", null, null, Provider.class }, + // Duration + { "P7DT10H", Duration.parse("P7DT10H"), null, Duration.class }, } ); }
