You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by mi...@apache.org on 2016/04/18 13:44:16 UTC

[01/12] logging-log4j2 git commit: CharSequenceFormattable

Repository: logging-log4j2
Updated Branches:
  refs/heads/master d3e571f37 -> 86934ca41


CharSequenceFormattable


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

Branch: refs/heads/master
Commit: 07723d5cf7078300b63bae462f5557d11705d3fe
Parents: 90adca7
Author: Mikael Ståldal <mi...@magine.com>
Authored: Wed Apr 13 17:53:40 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Wed Apr 13 17:53:40 2016 +0200

----------------------------------------------------------------------
 .../logging/log4j/message/ObjectMessage.java    | 16 ++++++++--
 .../log4j/message/ParameterizedMessage.java     | 18 +++++++++--
 .../logging/log4j/message/ReusableMessage.java  |  3 +-
 .../log4j/message/ReusableObjectMessage.java    |  9 ++++++
 .../message/ReusableParameterizedMessage.java   | 10 ++++--
 .../log4j/message/ReusableSimpleMessage.java    |  5 +++
 .../logging/log4j/message/SimpleMessage.java    | 13 +++++---
 .../log4j/message/ThreadDumpMessage.java        | 19 ++++++++---
 .../log4j/util/CharSequenceFormattable.java     | 33 ++++++++++++++++++++
 .../log4j/core/async/RingBufferLogEvent.java    | 14 ++++++---
 .../logging/log4j/core/layout/GelfLayout.java   |  6 ++--
 11 files changed, 122 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
index db8c31b..11e2731 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
@@ -16,17 +16,18 @@
  */
 package org.apache.logging.log4j.message;
 
+import org.apache.logging.log4j.util.CharSequenceFormattable;
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
 
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-
 /**
  * Handles messages that contain an Object.
  */
-public class ObjectMessage implements Message, StringBuilderFormattable {
+public class ObjectMessage implements Message, StringBuilderFormattable, CharSequenceFormattable {
 
     private static final long serialVersionUID = -5903272448334166185L;
 
@@ -69,6 +70,15 @@ public class ObjectMessage implements Message, StringBuilderFormattable {
         }
     }
 
+    @Override
+    public CharSequence getFormattedCharSequence() {
+        if (obj instanceof CharSequence) {
+            return (CharSequence) obj;
+        } else {
+            return getFormattedMessage();
+        }
+    }
+
     /**
      * Returns the object formatted using its toString method.
      *

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
index 6c5b8e7..4e8648e 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
@@ -16,10 +16,11 @@
  */
 package org.apache.logging.log4j.message;
 
-import java.util.Arrays;
-
+import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 
+import java.util.Arrays;
+
 /**
  * Handles messages that consist of a format string containing '{}' to represent each replaceable token, and
  * the parameters.
@@ -28,7 +29,7 @@ import org.apache.logging.log4j.util.StringBuilderFormattable;
  * licensed under the LGPL. It has been relicensed here with his permission providing that this attribution remain.
  * </p>
  */
-public class ParameterizedMessage implements Message, StringBuilderFormattable {
+public class ParameterizedMessage implements Message, StringBuilderFormattable, CharSequenceFormattable {
     /**
      * Prefix for recursion.
      */
@@ -219,6 +220,17 @@ public class ParameterizedMessage implements Message, StringBuilderFormattable {
         }
     }
 
+    @Override
+    public CharSequence getFormattedCharSequence() {
+        if (formattedMessage != null) {
+            return formattedMessage;
+        } else {
+            final StringBuilder buffer = getThreadLocalStringBuilder();
+            formatTo(buffer);
+            return buffer;
+        }
+    }
+
     /**
      * Replace placeholders in the given messagePattern with arguments.
      *

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java
index a6da9c4..ad1fc6d 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java
@@ -16,6 +16,7 @@
  */
 package org.apache.logging.log4j.message;
 
+import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 
@@ -29,5 +30,5 @@ import org.apache.logging.log4j.util.StringBuilderFormattable;
  * @since 2.6
  */
 @PerformanceSensitive("allocation")
-public interface ReusableMessage extends Message, StringBuilderFormattable {
+public interface ReusableMessage extends Message, StringBuilderFormattable, CharSequenceFormattable {
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
index 12f62f4..d40bb00 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
@@ -57,6 +57,15 @@ public class ReusableObjectMessage implements ReusableMessage {
         }
     }
 
+    @Override
+    public CharSequence getFormattedCharSequence() {
+        if (obj instanceof CharSequence) {
+            return (CharSequence) obj;
+        } else {
+            return getFormattedMessage();
+        }
+    }
+
     /**
      * Returns the object formatted using its toString method.
      *

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
index 0c099cf..bd084e0 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
@@ -16,10 +16,10 @@
  */
 package org.apache.logging.log4j.message;
 
-import java.util.Arrays;
-
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
+import java.util.Arrays;
+
 /**
  * Reusable parameterized message. This message is mutable and is not safe to be accessed or modified by multiple
  * threads concurrently.
@@ -257,6 +257,12 @@ public class ReusableParameterizedMessage implements ReusableMessage {
         }
     }
 
+    @Override
+    public CharSequence getFormattedCharSequence() {
+        final StringBuilder sb = getBuffer();
+        formatTo(sb);
+        return sb;
+    }
 
     @Override
     public String toString() {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
index a0954dc..68bf7ba 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
@@ -60,5 +60,10 @@ public class ReusableSimpleMessage implements ReusableMessage {
     public void formatTo(final StringBuilder buffer) {
         buffer.append(charSequence);
     }
+
+    @Override
+    public CharSequence getFormattedCharSequence() {
+        return charSequence;
+    }
 }
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
index 31d35b1..44dc15e 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
@@ -16,17 +16,17 @@
  */
 package org.apache.logging.log4j.message;
 
+import org.apache.logging.log4j.util.CharSequenceFormattable;
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
-import java.io.Serializable;
-
-import org.apache.logging.log4j.util.StringBuilderFormattable;
 
 /**
  * The simplest possible implementation of Message. It just returns the String given as the constructor argument.
  */
-public class SimpleMessage implements Message, StringBuilderFormattable {
+public class SimpleMessage implements Message, StringBuilderFormattable, CharSequenceFormattable {
     private static final long serialVersionUID = -8398002534962715992L;
 
     private String message;
@@ -74,6 +74,11 @@ public class SimpleMessage implements Message, StringBuilderFormattable {
         buffer.append(charSequence);
     }
 
+    @Override
+    public CharSequence getFormattedCharSequence() {
+        return charSequence;
+    }
+
     /**
      * Returns the message.
      * @return the message.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
index 67f0d5f..2a9b193 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
@@ -16,6 +16,10 @@
  */
 package org.apache.logging.log4j.message;
 
+import org.apache.logging.log4j.util.CharSequenceFormattable;
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+import org.apache.logging.log4j.util.Strings;
+
 import java.io.InvalidObjectException;
 import java.io.ObjectInputStream;
 import java.io.Serializable;
@@ -26,13 +30,10 @@ import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.Strings;
-
 /**
  * Captures information about all running Threads.
  */
-public class ThreadDumpMessage implements Message, StringBuilderFormattable {
+public class ThreadDumpMessage implements Message, StringBuilderFormattable, CharSequenceFormattable {
 
     private static final long serialVersionUID = -1103400781608841088L;
 
@@ -103,6 +104,16 @@ public class ThreadDumpMessage implements Message, StringBuilderFormattable {
         }
     }
 
+    @Override
+    public CharSequence getFormattedCharSequence() {
+        if (formattedMessage != null) {
+            return formattedMessage;
+        }
+        final StringBuilder sb = new StringBuilder(255);
+        formatTo(sb);
+        return sb;
+    }
+
     /**
      * Returns the title.
      * @return the title.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-api/src/main/java/org/apache/logging/log4j/util/CharSequenceFormattable.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/CharSequenceFormattable.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/CharSequenceFormattable.java
new file mode 100644
index 0000000..b14289d
--- /dev/null
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/CharSequenceFormattable.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.util;
+
+/**
+ * Objects that implement this interface can be converted to text, ideally without allocating temporary objects.
+ *
+ * @since 2.6
+ */
+public interface CharSequenceFormattable {
+
+    /**
+     * Return a text representation of this object, ideally without allocating temporary objects or copying strings.
+     *
+     * This may return a shared buffer (such as a {@link StringBuilder}). The caller should quickly consume
+     * the data and not keep any reference to the returned {@link CharSequence}.
+     */
+    CharSequence getFormattedCharSequence();
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
index f3ad22f..2b79e1b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
@@ -16,10 +16,7 @@
  */
 package org.apache.logging.log4j.core.async;
 
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.Map;
-
+import com.lmax.disruptor.EventFactory;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext.ContextStack;
@@ -36,7 +33,9 @@ import org.apache.logging.log4j.message.TimestampMessage;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.Strings;
 
-import com.lmax.disruptor.EventFactory;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * When the Disruptor is started, the RingBuffer is populated with event objects. These objects are then re-used during
@@ -242,6 +241,11 @@ public class RingBufferLogEvent implements LogEvent, ReusableMessage {
         buffer.append(messageText);
     }
 
+    @Override
+    public CharSequence getFormattedCharSequence() {
+        return messageText;
+    }
+
     private Message getNonNullImmutableMessage() {
         return message != null ? message : new SimpleMessage(String.valueOf(messageText));
     }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/07723d5c/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
index cef4e46..9ee522b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
@@ -25,11 +25,11 @@ import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
 import org.apache.logging.log4j.core.net.Severity;
-import org.apache.logging.log4j.core.util.Constants;
 import org.apache.logging.log4j.core.util.JsonUtils;
 import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 import org.apache.logging.log4j.util.Strings;
 
@@ -217,7 +217,9 @@ public final class GelfLayout extends AbstractStringLayout {
 
         builder.append("\"short_message\":\"");
         Message message = event.getMessage();
-        if (gcFree && message instanceof StringBuilderFormattable) {
+        if (message instanceof CharSequenceFormattable) {
+            JsonUtils.quoteAsString(toNullSafeString(((CharSequenceFormattable)message).getFormattedCharSequence()), builder);
+        } else if (gcFree && message instanceof StringBuilderFormattable) {
             StringBuilder messageBuffer = getMessageStringBuilder();
             ((StringBuilderFormattable)message).formatTo(messageBuffer);
             JsonUtils.quoteAsString(messageBuffer, builder);


[07/12] logging-log4j2 git commit: Merge branch 'master' into LOG4J2-1365

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1365


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

Branch: refs/heads/master
Commit: 0ec82b7b66bfd028eb11ab972a98b3e8555a167f
Parents: f68acc5 71fbda8
Author: Mikael Ståldal <mi...@magine.com>
Authored: Fri Apr 15 14:24:36 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Fri Apr 15 14:24:36 2016 +0200

----------------------------------------------------------------------
 .../logging/log4j/core/impl/Log4jLogEvent.java  |  14 +-
 .../log4j/core/impl/MutableLogEvent.java        | 171 +++++++++++++++++--
 2 files changed, 166 insertions(+), 19 deletions(-)
----------------------------------------------------------------------



[05/12] logging-log4j2 git commit: Merge branch 'master' into LOG4J2-1365

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1365


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

Branch: refs/heads/master
Commit: 02cde27594d15128b4a958bb0192d31b84512cb8
Parents: 5f52590 8f5e275
Author: Mikael Ståldal <mi...@magine.com>
Authored: Thu Apr 14 15:13:02 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Thu Apr 14 15:13:02 2016 +0200

----------------------------------------------------------------------
 .../log4j/perf/jmh/GelfLayoutBenchmark.java     | 75 ++++++++++++++++++++
 .../src/main/resources/log4j2-gelf-perf.xml     | 30 ++++++++
 2 files changed, 105 insertions(+)
----------------------------------------------------------------------



[09/12] logging-log4j2 git commit: Use CharSequence instead of CharSequenceFormattable

Posted by mi...@apache.org.
Use CharSequence instead of CharSequenceFormattable


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

Branch: refs/heads/master
Commit: 85a46bbe78b749ea14dd2a70cc809932271f5dea
Parents: 299f488
Author: Mikael Ståldal <mi...@magine.com>
Authored: Fri Apr 15 16:23:11 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Fri Apr 15 16:23:11 2016 +0200

----------------------------------------------------------------------
 .../log4j/message/ReusableSimpleMessage.java    | 20 +++++++++---
 .../logging/log4j/message/SimpleMessage.java    | 27 +++++++++++-----
 .../log4j/util/CharSequenceFormattable.java     | 33 --------------------
 .../log4j/core/async/RingBufferLogEvent.java    | 21 ++++++++++---
 .../logging/log4j/core/layout/GelfLayout.java   |  5 ++-
 5 files changed, 55 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85a46bbe/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
index 2dd46d2..ed6e39e 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
@@ -24,7 +23,7 @@ import org.apache.logging.log4j.util.PerformanceSensitive;
  * @since 2.6
  */
 @PerformanceSensitive("allocation")
-public class ReusableSimpleMessage implements ReusableMessage, CharSequenceFormattable {
+public class ReusableSimpleMessage implements ReusableMessage, CharSequence {
     private static final long serialVersionUID = -9199974506498249809L;
     private static Object[] EMPTY_PARAMS = new Object[0];
     private CharSequence charSequence;
@@ -62,9 +61,22 @@ public class ReusableSimpleMessage implements ReusableMessage, CharSequenceForma
         buffer.append(charSequence);
     }
 
+
+    // CharSequence impl
+
+    @Override
+    public int length() {
+        return charSequence == null ? 0 : charSequence.length();
+    }
+
+    @Override
+    public char charAt(int index) {
+        return charSequence.charAt(index);
+    }
+
     @Override
-    public CharSequence getFormattedCharSequence() {
-        return charSequence;
+    public CharSequence subSequence(int start, int end) {
+        return charSequence.subSequence(start, end);
     }
 }
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85a46bbe/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
index 44dc15e..e26c506 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 
 import java.io.IOException;
@@ -26,7 +25,7 @@ import java.io.ObjectOutputStream;
 /**
  * The simplest possible implementation of Message. It just returns the String given as the constructor argument.
  */
-public class SimpleMessage implements Message, StringBuilderFormattable, CharSequenceFormattable {
+public class SimpleMessage implements Message, StringBuilderFormattable, CharSequence {
     private static final long serialVersionUID = -8398002534962715992L;
 
     private String message;
@@ -74,11 +73,6 @@ public class SimpleMessage implements Message, StringBuilderFormattable, CharSeq
         buffer.append(charSequence);
     }
 
-    @Override
-    public CharSequence getFormattedCharSequence() {
-        return charSequence;
-    }
-
     /**
      * Returns the message.
      * @return the message.
@@ -131,6 +125,25 @@ public class SimpleMessage implements Message, StringBuilderFormattable, CharSeq
         return null;
     }
 
+
+    // CharSequence impl
+
+    @Override
+    public int length() {
+        return charSequence == null ? 0 : charSequence.length();
+    }
+
+    @Override
+    public char charAt(int index) {
+        return charSequence.charAt(index);
+    }
+
+    @Override
+    public CharSequence subSequence(int start, int end) {
+        return charSequence.subSequence(start, end);
+    }
+
+
     private void writeObject(final ObjectOutputStream out) throws IOException {
         getFormattedMessage(); // initialize the message:String field
         out.defaultWriteObject();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85a46bbe/log4j-api/src/main/java/org/apache/logging/log4j/util/CharSequenceFormattable.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/CharSequenceFormattable.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/CharSequenceFormattable.java
deleted file mode 100644
index b14289d..0000000
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/CharSequenceFormattable.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache license, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the license for the specific language governing permissions and
- * limitations under the license.
- */
-package org.apache.logging.log4j.util;
-
-/**
- * Objects that implement this interface can be converted to text, ideally without allocating temporary objects.
- *
- * @since 2.6
- */
-public interface CharSequenceFormattable {
-
-    /**
-     * Return a text representation of this object, ideally without allocating temporary objects or copying strings.
-     *
-     * This may return a shared buffer (such as a {@link StringBuilder}). The caller should quickly consume
-     * the data and not keep any reference to the returned {@link CharSequence}.
-     */
-    CharSequence getFormattedCharSequence();
-}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85a46bbe/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
index 873efc6..9504e8a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
@@ -30,7 +30,6 @@ import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.ReusableMessage;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.message.TimestampMessage;
-import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.Strings;
 
@@ -42,7 +41,7 @@ import java.util.Map;
  * When the Disruptor is started, the RingBuffer is populated with event objects. These objects are then re-used during
  * the life of the RingBuffer.
  */
-public class RingBufferLogEvent implements LogEvent, ReusableMessage, CharSequenceFormattable {
+public class RingBufferLogEvent implements LogEvent, ReusableMessage, CharSequence {
 
     /** The {@code EventFactory} for {@code RingBufferLogEvent}s. */
     public static final Factory FACTORY = new Factory();
@@ -242,11 +241,25 @@ public class RingBufferLogEvent implements LogEvent, ReusableMessage, CharSequen
         buffer.append(messageText);
     }
 
+
+    // CharSequence impl
+
     @Override
-    public CharSequence getFormattedCharSequence() {
-        return messageText;
+    public int length() {
+        return messageText.length();
+    }
+
+    @Override
+    public char charAt(int index) {
+        return messageText.charAt(index);
     }
 
+    @Override
+    public CharSequence subSequence(int start, int end) {
+        return messageText.subSequence(start, end);
+    }
+
+
     private Message getNonNullImmutableMessage() {
         return message != null ? message : new SimpleMessage(String.valueOf(messageText));
     }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/85a46bbe/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
index 1854004..24ab6c4 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
@@ -29,7 +29,6 @@ import org.apache.logging.log4j.core.util.JsonUtils;
 import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.status.StatusLogger;
-import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 import org.apache.logging.log4j.util.Strings;
 
@@ -221,8 +220,8 @@ public final class GelfLayout extends AbstractStringLayout {
 
         builder.append("\"short_message\":\"");
         Message message = event.getMessage();
-        if (message instanceof CharSequenceFormattable) {
-            JsonUtils.quoteAsString(toNullSafeString(((CharSequenceFormattable)message).getFormattedCharSequence()), builder);
+        if (message instanceof CharSequence) {
+            JsonUtils.quoteAsString(((CharSequence)message), builder);
         } else if (gcFree && message instanceof StringBuilderFormattable) {
             StringBuilder messageBuffer = getMessageStringBuilder();
             ((StringBuilderFormattable)message).formatTo(messageBuffer);


[08/12] logging-log4j2 git commit: Remove CharSequenceFormattable from ParameterizedMessages

Posted by mi...@apache.org.
Remove CharSequenceFormattable from ParameterizedMessages


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

Branch: refs/heads/master
Commit: 299f488dceb9035892e5f4a3d68cf5c1a801dcee
Parents: 0ec82b7
Author: Mikael Ståldal <mi...@magine.com>
Authored: Fri Apr 15 14:48:07 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Fri Apr 15 14:48:07 2016 +0200

----------------------------------------------------------------------
 .../logging/log4j/message/ParameterizedMessage.java   | 14 +-------------
 .../log4j/message/ReusableParameterizedMessage.java   | 10 +---------
 2 files changed, 2 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/299f488d/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
index 4e8648e..1747102 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 
 import java.util.Arrays;
@@ -29,7 +28,7 @@ import java.util.Arrays;
  * licensed under the LGPL. It has been relicensed here with his permission providing that this attribution remain.
  * </p>
  */
-public class ParameterizedMessage implements Message, StringBuilderFormattable, CharSequenceFormattable {
+public class ParameterizedMessage implements Message, StringBuilderFormattable {
     /**
      * Prefix for recursion.
      */
@@ -220,17 +219,6 @@ public class ParameterizedMessage implements Message, StringBuilderFormattable,
         }
     }
 
-    @Override
-    public CharSequence getFormattedCharSequence() {
-        if (formattedMessage != null) {
-            return formattedMessage;
-        } else {
-            final StringBuilder buffer = getThreadLocalStringBuilder();
-            formatTo(buffer);
-            return buffer;
-        }
-    }
-
     /**
      * Replace placeholders in the given messagePattern with arguments.
      *

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/299f488d/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
index c4c15d5..22b0b15 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
 import java.util.Arrays;
@@ -29,7 +28,7 @@ import java.util.Arrays;
  * @since 2.6
  */
 @PerformanceSensitive("allocation")
-public class ReusableParameterizedMessage implements ReusableMessage, CharSequenceFormattable {
+public class ReusableParameterizedMessage implements ReusableMessage {
 
     private static final long serialVersionUID = 7800075879295123856L;
     private static ThreadLocal<StringBuilder> buffer = new ThreadLocal<>();
@@ -259,13 +258,6 @@ public class ReusableParameterizedMessage implements ReusableMessage, CharSequen
     }
 
     @Override
-    public CharSequence getFormattedCharSequence() {
-        final StringBuilder sb = getBuffer();
-        formatTo(sb);
-        return sb;
-    }
-
-    @Override
     public String toString() {
         return "ReusableParameterizedMessage[messagePattern=" + getFormat() + ", stringArgs=" +
                 Arrays.toString(getParameters()) + ", throwable=" + getThrowable() + ']';


[03/12] logging-log4j2 git commit: Do not use CharSequenceFormattable for (Reusable)ObjectMessage

Posted by mi...@apache.org.
Do not use CharSequenceFormattable for (Reusable)ObjectMessage


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

Branch: refs/heads/master
Commit: 149da7f8d05b3d400a30447aa15c0858c7aea12c
Parents: 8b59f23
Author: Mikael Ståldal <mi...@magine.com>
Authored: Thu Apr 14 10:49:17 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Thu Apr 14 10:49:17 2016 +0200

----------------------------------------------------------------------
 .../apache/logging/log4j/message/ObjectMessage.java    | 12 +-----------
 .../apache/logging/log4j/message/ReusableMessage.java  |  3 +--
 .../logging/log4j/message/ReusableObjectMessage.java   |  9 ---------
 .../log4j/message/ReusableParameterizedMessage.java    |  3 ++-
 .../logging/log4j/message/ReusableSimpleMessage.java   |  3 ++-
 .../logging/log4j/message/ThreadDumpMessage.java       | 13 +------------
 .../logging/log4j/core/async/RingBufferLogEvent.java   |  3 ++-
 7 files changed, 9 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/149da7f8/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
index 11e2731..eaeb445 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 
 import java.io.IOException;
@@ -27,7 +26,7 @@ import java.io.Serializable;
 /**
  * Handles messages that contain an Object.
  */
-public class ObjectMessage implements Message, StringBuilderFormattable, CharSequenceFormattable {
+public class ObjectMessage implements Message, StringBuilderFormattable {
 
     private static final long serialVersionUID = -5903272448334166185L;
 
@@ -70,15 +69,6 @@ public class ObjectMessage implements Message, StringBuilderFormattable, CharSeq
         }
     }
 
-    @Override
-    public CharSequence getFormattedCharSequence() {
-        if (obj instanceof CharSequence) {
-            return (CharSequence) obj;
-        } else {
-            return getFormattedMessage();
-        }
-    }
-
     /**
      * Returns the object formatted using its toString method.
      *

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/149da7f8/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java
index ad1fc6d..a6da9c4 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessage.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 
@@ -30,5 +29,5 @@ import org.apache.logging.log4j.util.StringBuilderFormattable;
  * @since 2.6
  */
 @PerformanceSensitive("allocation")
-public interface ReusableMessage extends Message, StringBuilderFormattable, CharSequenceFormattable {
+public interface ReusableMessage extends Message, StringBuilderFormattable {
 }

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/149da7f8/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
index d40bb00..12f62f4 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableObjectMessage.java
@@ -57,15 +57,6 @@ public class ReusableObjectMessage implements ReusableMessage {
         }
     }
 
-    @Override
-    public CharSequence getFormattedCharSequence() {
-        if (obj instanceof CharSequence) {
-            return (CharSequence) obj;
-        } else {
-            return getFormattedMessage();
-        }
-    }
-
     /**
      * Returns the object formatted using its toString method.
      *

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/149da7f8/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
index bd084e0..c4c15d5 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
@@ -16,6 +16,7 @@
  */
 package org.apache.logging.log4j.message;
 
+import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
 import java.util.Arrays;
@@ -28,7 +29,7 @@ import java.util.Arrays;
  * @since 2.6
  */
 @PerformanceSensitive("allocation")
-public class ReusableParameterizedMessage implements ReusableMessage {
+public class ReusableParameterizedMessage implements ReusableMessage, CharSequenceFormattable {
 
     private static final long serialVersionUID = 7800075879295123856L;
     private static ThreadLocal<StringBuilder> buffer = new ThreadLocal<>();

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/149da7f8/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
index 68bf7ba..2dd46d2 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableSimpleMessage.java
@@ -16,6 +16,7 @@
  */
 package org.apache.logging.log4j.message;
 
+import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.PerformanceSensitive;
 
 /**
@@ -23,7 +24,7 @@ import org.apache.logging.log4j.util.PerformanceSensitive;
  * @since 2.6
  */
 @PerformanceSensitive("allocation")
-public class ReusableSimpleMessage implements ReusableMessage {
+public class ReusableSimpleMessage implements ReusableMessage, CharSequenceFormattable {
     private static final long serialVersionUID = -9199974506498249809L;
     private static Object[] EMPTY_PARAMS = new Object[0];
     private CharSequence charSequence;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/149da7f8/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
index 2a9b193..3907443 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
@@ -16,7 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.StringBuilderFormattable;
 import org.apache.logging.log4j.util.Strings;
 
@@ -33,7 +32,7 @@ import java.util.Map;
 /**
  * Captures information about all running Threads.
  */
-public class ThreadDumpMessage implements Message, StringBuilderFormattable, CharSequenceFormattable {
+public class ThreadDumpMessage implements Message, StringBuilderFormattable {
 
     private static final long serialVersionUID = -1103400781608841088L;
 
@@ -104,16 +103,6 @@ public class ThreadDumpMessage implements Message, StringBuilderFormattable, Cha
         }
     }
 
-    @Override
-    public CharSequence getFormattedCharSequence() {
-        if (formattedMessage != null) {
-            return formattedMessage;
-        }
-        final StringBuilder sb = new StringBuilder(255);
-        formatTo(sb);
-        return sb;
-    }
-
     /**
      * Returns the title.
      * @return the title.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/149da7f8/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
index 2b79e1b..873efc6 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
@@ -30,6 +30,7 @@ import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.ReusableMessage;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.message.TimestampMessage;
+import org.apache.logging.log4j.util.CharSequenceFormattable;
 import org.apache.logging.log4j.util.PropertiesUtil;
 import org.apache.logging.log4j.util.Strings;
 
@@ -41,7 +42,7 @@ import java.util.Map;
  * When the Disruptor is started, the RingBuffer is populated with event objects. These objects are then re-used during
  * the life of the RingBuffer.
  */
-public class RingBufferLogEvent implements LogEvent, ReusableMessage {
+public class RingBufferLogEvent implements LogEvent, ReusableMessage, CharSequenceFormattable {
 
     /** The {@code EventFactory} for {@code RingBufferLogEvent}s. */
     public static final Factory FACTORY = new Factory();


[06/12] logging-log4j2 git commit: Merge branch 'master' into LOG4J2-1365

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1365


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

Branch: refs/heads/master
Commit: f68acc5c77f0ac490fe3639f75061fe910fe26f9
Parents: 02cde27 aaaaaad
Author: Mikael Ståldal <mi...@magine.com>
Authored: Thu Apr 14 16:02:24 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Thu Apr 14 16:02:24 2016 +0200

----------------------------------------------------------------------
 .../log4j/perf/jmh/GelfLayoutBenchmark.java     | 67 +++++++++++++-----
 .../logging/log4j/perf/util/DemoAppender.java   | 71 ++++++++++++++++++++
 .../src/main/resources/log4j2-gelf-perf.xml     | 30 ---------
 3 files changed, 122 insertions(+), 46 deletions(-)
----------------------------------------------------------------------



[10/12] logging-log4j2 git commit: Revert insignificant changes

Posted by mi...@apache.org.
Revert insignificant changes


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

Branch: refs/heads/master
Commit: dae9d798f235b05a665d3af1c2cfe24616d248a8
Parents: 85a46bb
Author: Mikael Ståldal <mi...@magine.com>
Authored: Fri Apr 15 16:25:17 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Fri Apr 15 16:25:40 2016 +0200

----------------------------------------------------------------------
 .../org/apache/logging/log4j/message/ParameterizedMessage.java  | 4 ++--
 .../logging/log4j/message/ReusableParameterizedMessage.java     | 5 +++--
 2 files changed, 5 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/dae9d798/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
index 1747102..6c5b8e7 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ParameterizedMessage.java
@@ -16,10 +16,10 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-
 import java.util.Arrays;
 
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+
 /**
  * Handles messages that consist of a format string containing '{}' to represent each replaceable token, and
  * the parameters.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/dae9d798/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
index 22b0b15..0c099cf 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableParameterizedMessage.java
@@ -16,10 +16,10 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.PerformanceSensitive;
-
 import java.util.Arrays;
 
+import org.apache.logging.log4j.util.PerformanceSensitive;
+
 /**
  * Reusable parameterized message. This message is mutable and is not safe to be accessed or modified by multiple
  * threads concurrently.
@@ -257,6 +257,7 @@ public class ReusableParameterizedMessage implements ReusableMessage {
         }
     }
 
+
     @Override
     public String toString() {
         return "ReusableParameterizedMessage[messagePattern=" + getFormat() + ", stringArgs=" +


[11/12] logging-log4j2 git commit: Merge branch 'master' into LOG4J2-1365

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1365

Conflicts:
	log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java


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

Branch: refs/heads/master
Commit: 86f30cfcf1f816f2b491cfab74959049363c7a48
Parents: dae9d79 d3e571f
Author: Mikael Ståldal <mi...@magine.com>
Authored: Mon Apr 18 13:27:17 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Mon Apr 18 13:27:17 2016 +0200

----------------------------------------------------------------------
 .../ParameterizedNoReferenceMessageFactory.java |  39 +-
 .../message/ReusableParameterizedMessage.java   |   2 +-
 .../logging/log4j/message/SimpleMessage.java    |   3 +-
 .../org/apache/logging/log4j/util/Strings.java  |  12 +
 .../org/apache/logging/log4j/util/Unbox.java    |   2 -
 .../log4j/message/ParameterFormatterTest.java   |   2 -
 .../apache/logging/log4j/util/UnboxTest.java    |   2 +
 log4j-core/pom.xml                              |   5 +
 .../log4j/core/appender/AsyncAppender.java      |  28 +-
 .../log4j/core/appender/FileManager.java        |   3 +-
 .../core/appender/MemoryMappedFileManager.java  |   3 +-
 .../core/appender/OutputStreamManager.java      |   7 +-
 .../core/appender/RandomAccessFileManager.java  |   3 +-
 .../RollingRandomAccessFileAppender.java        |   2 +-
 .../core/appender/rolling/PatternProcessor.java |   1 +
 .../appender/rolling/RollingFileManager.java    |   4 +-
 .../rolling/RollingRandomAccessFileManager.java |   3 +-
 .../appender/rolling/action/DeleteAction.java   | 432 +++++-----
 .../core/async/AsyncEventRouterFactory.java     |   2 -
 .../log4j/core/async/AsyncLoggerConfig.java     |   1 +
 .../core/async/AsyncLoggerConfigDelegate.java   |  10 +
 .../core/async/AsyncLoggerConfigDisruptor.java  |  66 +-
 .../logging/log4j/core/async/EventRoute.java    |   9 +-
 .../log4j/core/async/RingBufferLogEvent.java    |  15 +-
 .../core/async/ThreadNameCachingStrategy.java   |   4 +-
 .../logging/log4j/core/config/LoggerConfig.java |   5 +-
 .../logging/log4j/core/impl/Log4jLogEvent.java  |   3 +-
 .../log4j/core/impl/MutableLogEvent.java        |  46 +-
 .../core/impl/ReusableLogEventFactory.java      |  34 +-
 .../log4j/core/jackson/Initializers.java        |   2 +-
 .../log4j/core/jackson/Log4jYamlModule.java     |  48 ++
 .../core/jackson/Log4jYamlObjectMapper.java     |  41 +
 .../core/layout/AbstractJacksonLayout.java      |  17 +-
 .../core/layout/ByteBufferDestination.java      |   8 +-
 .../log4j/core/layout/CsvLogEventLayout.java    | 213 +++--
 .../log4j/core/layout/CsvParameterLayout.java   | 207 +++--
 .../logging/log4j/core/layout/GelfLayout.java   |   9 +-
 .../log4j/core/layout/JacksonFactory.java       |  36 +-
 .../layout/LockingStringBuilderEncoder.java     |   3 +-
 .../log4j/core/layout/StringBuilderEncoder.java |   3 +-
 .../log4j/core/layout/TextEncoderHelper.java    |   1 -
 .../logging/log4j/core/layout/YamlLayout.java   | 824 +++++++++++++++++++
 .../logging/log4j/core/net/SmtpManager.java     |   5 +-
 .../log4j/core/net/server/TcpSocketServer.java  |  19 +-
 .../core/pattern/DatePatternConverter.java      |   3 +-
 .../ExtendedThrowablePatternConverter.java      |   6 +-
 .../pattern/RootThrowablePatternConverter.java  |   6 +-
 .../logging/log4j/core/util/Constants.java      |  45 +-
 .../logging/log4j/MarkerMixInYamlTest.java      |  31 +
 .../log4j/core/AppenderRefLevelJsonTest.java    |  12 +-
 .../log4j/core/AppenderRefLevelTest.java        |  12 +-
 .../core/GcFreeAsynchronousLoggingTest.java     |  41 +
 .../logging/log4j/core/GcFreeLoggingTest.java   | 167 ----
 .../log4j/core/GcFreeLoggingTestUtil.java       | 170 ++++
 .../core/GcFreeMixedSyncAyncLoggingTest.java    |  43 +
 .../core/GcFreeSynchronousLoggingTest.java      |  42 +
 .../apache/logging/log4j/core/LoggerTest.java   |  12 +-
 .../logging/log4j/core/LoggerUpdateTest.java    |   4 +-
 .../logging/log4j/core/PatternSelectorTest.java |  12 +-
 .../logging/log4j/core/StrictXmlConfigTest.java |  13 +-
 .../appender/JsonCompleteFileAppenderTest.java  |   2 +-
 .../log4j/core/appender/SocketAppenderTest.java |   2 +-
 .../log4j/core/async/perftest/IdleStrategy.java |  43 +
 .../core/async/perftest/NoOpIdleStrategy.java   |  34 +
 .../core/async/perftest/SimpleLatencyTest.java  | 119 ++-
 .../core/filter/AbstractScriptFilterTest.java   |   4 +-
 .../log4j/core/impl/MutableLogEventTest.java    |  84 ++
 .../log4j/core/jackson/LevelMixInJsonTest.java  |   1 +
 .../log4j/core/jackson/LevelMixInYamlTest.java  |  29 +
 .../jackson/StackTraceElementMixInTest.java     |   5 +
 .../log4j/core/layout/YamlLayoutTest.java       | 287 +++++++
 .../log4j/test/appender/ListAppender.java       |   9 +-
 .../resources/JsonCompleteFileAppenderTest.xml  |   4 +-
 .../resources/gcFreeMixedSyncAsyncLogging.xml   |  71 ++
 .../appender/NoSqlDatabaseManagerTest.java      |  26 +-
 .../message/ParameterFormatterBenchmark.java    |   2 -
 .../log4j/perf/jmh/CollectionsBenchmark.java    |  12 +-
 .../log4j/perf/jmh/LoggerConfigBenchmark.java   |   2 +-
 .../perf/jmh/TextEncoderHelperBenchmark.java    |   2 +-
 ...ThreadLocalVsConcurrentHashMapBenchmark.java | 186 ++---
 .../logging/log4j/perf/nogc/NoGcLayout.java     |   1 -
 .../logging/log4j/lookup/CustomLookup.java      |   3 +-
 .../logging/log4j/lookup/MapMessageLookup.java  |   6 +-
 .../org/apache/logging/slf4j/LoggerTest.java    | 360 ++++----
 .../log4j/web/ServletRequestThreadContext.java  |  29 +
 pom.xml                                         |   5 +
 src/changes/changes.xml                         |   3 +
 src/site/site.xml                               |   1 +
 src/site/xdoc/manual/layouts.xml.vm             | 151 ++++
 89 files changed, 3193 insertions(+), 1093 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86f30cfc/log4j-api/src/main/java/org/apache/logging/log4j/message/SimpleMessage.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86f30cfc/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
----------------------------------------------------------------------
diff --cc log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
index 9504e8a,6929596..e1e6ab0
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEvent.java
@@@ -30,12 -33,9 +30,11 @@@ import org.apache.logging.log4j.message
  import org.apache.logging.log4j.message.ReusableMessage;
  import org.apache.logging.log4j.message.SimpleMessage;
  import org.apache.logging.log4j.message.TimestampMessage;
- import org.apache.logging.log4j.util.PropertiesUtil;
  import org.apache.logging.log4j.util.Strings;
  
 -import com.lmax.disruptor.EventFactory;
 +import java.io.IOException;
 +import java.util.HashMap;
 +import java.util.Map;
  
  /**
   * When the Disruptor is started, the RingBuffer is populated with event objects. These objects are then re-used during

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86f30cfc/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------


[04/12] logging-log4j2 git commit: Restore non-changed code

Posted by mi...@apache.org.
Restore non-changed code


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

Branch: refs/heads/master
Commit: 5f52590a26eee63315dc6b946c4f07f34b22ea16
Parents: 149da7f
Author: Mikael Ståldal <mi...@magine.com>
Authored: Thu Apr 14 10:52:20 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Thu Apr 14 10:52:20 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/logging/log4j/message/ObjectMessage.java   | 4 ++--
 .../org/apache/logging/log4j/message/ThreadDumpMessage.java    | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5f52590a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
index eaeb445..db8c31b 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ObjectMessage.java
@@ -16,13 +16,13 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
 
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+
 /**
  * Handles messages that contain an Object.
  */

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5f52590a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
index 3907443..67f0d5f 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ThreadDumpMessage.java
@@ -16,9 +16,6 @@
  */
 package org.apache.logging.log4j.message;
 
-import org.apache.logging.log4j.util.StringBuilderFormattable;
-import org.apache.logging.log4j.util.Strings;
-
 import java.io.InvalidObjectException;
 import java.io.ObjectInputStream;
 import java.io.Serializable;
@@ -29,6 +26,9 @@ import java.lang.reflect.Method;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.logging.log4j.util.StringBuilderFormattable;
+import org.apache.logging.log4j.util.Strings;
+
 /**
  * Captures information about all running Threads.
  */


[02/12] logging-log4j2 git commit: Merge branch 'master' into LOG4J2-1365

Posted by mi...@apache.org.
Merge branch 'master' into LOG4J2-1365


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

Branch: refs/heads/master
Commit: 8b59f231fc741e69578c4c6e63ac63a8eb06cf62
Parents: 07723d5 c3463a8
Author: Mikael Ståldal <mi...@magine.com>
Authored: Thu Apr 14 10:32:55 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Thu Apr 14 10:32:55 2016 +0200

----------------------------------------------------------------------
 .../logging/log4j/core/impl/Log4jLogEvent.java  |  28 +-
 .../log4j/core/impl/MutableLogEvent.java        | 199 +++++++++++++
 .../core/impl/ReusableLogEventFactory.java      |  80 ++++++
 .../log4j/core/layout/AbstractStringLayout.java |  21 +-
 .../logging/log4j/core/layout/GelfLayout.java   |  10 +-
 .../layout/LockingStringBuilderEncoder.java     |  52 ++++
 .../log4j/core/layout/PatternLayout.java        |   5 +-
 .../log4j/core/layout/StringBuilderEncoder.java | 111 ++++++++
 .../log4j/core/layout/TextEncoderHelper.java    | 153 +++++-----
 .../core/layout/StringBuilderEncoderTest.java   | 277 +++++++++++++++++++
 .../core/layout/TextEncoderHelperTest.java      | 263 ------------------
 .../perf/jmh/TextEncoderHelperBenchmark.java    |  97 ++++---
 .../logging/log4j/perf/nogc/NoGcLayout.java     |  11 +-
 src/site/xdoc/manual/garbagefree.xml            |   6 +-
 14 files changed, 901 insertions(+), 412 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/8b59f231/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/GelfLayout.java
----------------------------------------------------------------------


[12/12] logging-log4j2 git commit: Fix compilation errors

Posted by mi...@apache.org.
Fix compilation errors


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

Branch: refs/heads/master
Commit: 86934ca41c41bb4cfc950b8fc1e65b0aab374ef6
Parents: 86f30cf
Author: Mikael Ståldal <mi...@magine.com>
Authored: Mon Apr 18 13:37:31 2016 +0200
Committer: Mikael Ståldal <mi...@magine.com>
Committed: Mon Apr 18 13:37:31 2016 +0200

----------------------------------------------------------------------
 .../test/java/org/apache/logging/log4j/AbstractLoggerTest.java | 6 +++---
 .../org/apache/logging/log4j/core/TimestampMessageTest.java    | 3 ++-
 .../log4j/core/async/AsyncLoggerTimestampMessageTest.java      | 3 ++-
 .../org/apache/logging/log4j/perf/jmh/SimpleBenchmark.java     | 5 +++--
 4 files changed, 10 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86934ca4/log4j-api/src/test/java/org/apache/logging/log4j/AbstractLoggerTest.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/AbstractLoggerTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/AbstractLoggerTest.java
index 3fd165d..d973610 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/AbstractLoggerTest.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/AbstractLoggerTest.java
@@ -165,7 +165,7 @@ public class AbstractLoggerTest extends AbstractLogger {
     @Override
     public boolean isEnabled(final Level level, final Marker marker, final CharSequence data, final Throwable t) {
         charSeqCount++;
-        return isEnabled(level, marker, new SimpleMessage(data), t);
+        return isEnabled(level, marker, (Message) new SimpleMessage(data), t);
     }
 
     @Override
@@ -176,7 +176,7 @@ public class AbstractLoggerTest extends AbstractLogger {
 
     @Override
     public boolean isEnabled(final Level level, final Marker marker, final String data) {
-        return isEnabled(level, marker, new SimpleMessage(data), null);
+        return isEnabled(level, marker, (Message) new SimpleMessage(data), null);
     }
 
     @Override
@@ -255,7 +255,7 @@ public class AbstractLoggerTest extends AbstractLogger {
 
     @Override
     public boolean isEnabled(final Level level, final Marker marker, final String data, final Throwable t) {
-        return isEnabled(level, marker, new SimpleMessage(data), t);
+        return isEnabled(level, marker, (Message) new SimpleMessage(data), t);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86934ca4/log4j-core/src/test/java/org/apache/logging/log4j/core/TimestampMessageTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/TimestampMessageTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/TimestampMessageTest.java
index d76e613..60d643b 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/TimestampMessageTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/TimestampMessageTest.java
@@ -24,6 +24,7 @@ import org.apache.logging.log4j.core.util.ClockFactory;
 import org.apache.logging.log4j.core.util.ClockFactoryTest;
 import org.apache.logging.log4j.core.util.Constants;
 import org.apache.logging.log4j.junit.LoggerContextRule;
+import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.message.TimestampMessage;
 import org.apache.logging.log4j.test.appender.ListAppender;
@@ -67,7 +68,7 @@ public class TimestampMessageTest {
     @Test
     public void testTimestampMessage() {
         final Logger log = context.getLogger("TimestampMessageTest");
-        log.info(new TimeMsg("Message with embedded timestamp", 123456789000L));
+        log.info((Message) new TimeMsg("Message with embedded timestamp", 123456789000L));
         final List<String> msgs = app.getMessages();
         assertNotNull(msgs);
         assertEquals(1, msgs.size());

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86934ca4/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java
index 34198a0..e540353 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/async/AsyncLoggerTimestampMessageTest.java
@@ -28,6 +28,7 @@ import org.apache.logging.log4j.core.util.Clock;
 import org.apache.logging.log4j.core.util.ClockFactory;
 import org.apache.logging.log4j.core.util.ClockFactoryTest;
 import org.apache.logging.log4j.core.util.Constants;
+import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.apache.logging.log4j.message.TimestampMessage;
 import org.apache.logging.log4j.util.Strings;
@@ -69,7 +70,7 @@ public class AsyncLoggerTimestampMessageTest {
         file.delete();
         final Logger log = LogManager.getLogger("com.foo.Bar");
         assertFalse(PoisonClock.called);
-        log.info(new TimeMsg("Async logger msg with embedded timestamp", 123456789000L));
+        log.info((Message) new TimeMsg("Async logger msg with embedded timestamp", 123456789000L));
         assertTrue(PoisonClock.called);
         CoreLoggerContexts.stopLoggerContext(false, file); // stop async thread
 

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/86934ca4/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SimpleBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SimpleBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SimpleBenchmark.java
index 8d1f189..37814c7 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SimpleBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/SimpleBenchmark.java
@@ -25,6 +25,7 @@ import org.apache.logging.log4j.Logger;
 import org.apache.logging.log4j.core.LoggerContext;
 import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.DefaultConfiguration;
+import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.message.SimpleMessage;
 import org.openjdk.jmh.annotations.Benchmark;
 import org.openjdk.jmh.annotations.BenchmarkMode;
@@ -92,7 +93,7 @@ public class SimpleBenchmark {
     @OutputTimeUnit(TimeUnit.SECONDS)
     @Benchmark
     public void testDebugMessageDisabledThroughput(final Blackhole bh) {
-        logger.debug(new SimpleMessage(msg));
+        logger.debug((Message) new SimpleMessage(msg));
     }
 
     @BenchmarkMode(Mode.SampleTime)
@@ -126,6 +127,6 @@ public class SimpleBenchmark {
     @OutputTimeUnit(TimeUnit.NANOSECONDS)
     @Benchmark
     public void testDebugDisabledMessageResponseTime(final Blackhole bh) {
-        logger.debug(new SimpleMessage(msg));
+        logger.debug((Message) new SimpleMessage(msg));
     }
 }