LOG4J2-1278 let ReusableParameterizedMessageFactory implement MessageFactory2
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/d641266a Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/d641266a Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/d641266a Branch: refs/heads/LOG4J2-1278-gc-free-logger Commit: d641266a3fb5d6832cd0d6bd09b1f82dab19aa05 Parents: fc8d5c4 Author: rpopma <[email protected]> Authored: Wed Feb 24 22:40:42 2016 +0900 Committer: rpopma <[email protected]> Committed: Wed Feb 24 22:40:42 2016 +0900 ---------------------------------------------------------------------- .../ReusableParameterizedMessageFactory.java | 78 +++++++++++++++++--- 1 file changed, 68 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/d641266a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessageFactory.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessageFactory.java index 568f5bc..726c782 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessageFactory.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessageFactory.java @@ -25,7 +25,7 @@ package org.apache.logging.log4j.message; * This class is immutable. * </p> */ -public final class ReusableParameterizedMessageFactory extends AbstractMessageFactory { +public final class ReusableParameterizedMessageFactory extends AbstractMessageFactory implements MessageFactory2 { /** * Instance of StringFormatterMessageFactory. @@ -42,6 +42,15 @@ public final class ReusableParameterizedMessageFactory extends AbstractMessageFa super(); } + private ParameterizedMessage get() { + ParameterizedMessage result = threadLocalMessage.get(); + if (result == null) { + result = new ParameterizedMessage("", null); + result.setReused(true); + threadLocalMessage.set(result); + } + return result; + } /** * Creates {@link ParameterizedMessage} instances. * @@ -53,14 +62,63 @@ public final class ReusableParameterizedMessageFactory extends AbstractMessageFa */ @Override public Message newMessage(final String message, final Object... params) { - ParameterizedMessage result = threadLocalMessage.get(); - if (result == null) { - result = new ParameterizedMessage(message, params); - result.setReused(true); - threadLocalMessage.set(result); - } else { - result.set(message, params); - } - return result; + return get().set(message, params); + } + + @Override + public Message newMessage(final String message, final Object p0) { + return get().set(message, p0); + } + + @Override + public Message newMessage(final String message, final Object p0, final Object p1) { + return get().set(message, p0, p1); + } + + @Override + public Message newMessage(final String message, final Object p0, final Object p1, final Object p2) { + return get().set(message, p0, p1, p2); + } + + @Override + public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, + final Object p3) { + return get().set(message, p0, p1, p2, p3); + } + + @Override + public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, + final Object p4) { + return get().set(message, p0, p1, p2, p3, p4); + } + + @Override + public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, + final Object p4, final Object p5) { + return get().set(message, p0, p1, p2, p3, p4, p5); + } + + @Override + public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, + final Object p4, final Object p5, final Object p6) { + return get().set(message, p0, p1, p2, p3, p4, p5, p6); + } + + @Override + public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, + final Object p4, final Object p5, final Object p6, final Object p7) { + return get().set(message, p0, p1, p2, p3, p4, p5, p6, p7); + } + + @Override + public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, + final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) { + return get().set(message, p0, p1, p2, p3, p4, p5, p6, p7, p8); + } + + @Override + public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, + final Object p4, final Object p5, final Object p6, final Object p7, final Object p8, final Object p9) { + return get().set(message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } }
