LOG4J2-1516 moved putAll(Map) method into separate ThreadContextMap2 interface


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

Branch: refs/heads/LOG4J2-1349-gcfree-threadcontext
Commit: 4182abd080e2f1fd8bf4d866823555b410fc5bc4
Parents: 4a0962b
Author: rpopma <[email protected]>
Authored: Sat Aug 20 09:15:43 2016 +0900
Committer: rpopma <[email protected]>
Committed: Tue Aug 23 00:31:07 2016 +0900

----------------------------------------------------------------------
 .../log4j/spi/AbstractCopyOnWriteMutableThreadContext.java   | 4 +++-
 .../log4j/spi/AbstractGarbageFreeMutableThreadContext.java   | 8 +++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4182abd0/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractCopyOnWriteMutableThreadContext.java
----------------------------------------------------------------------
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractCopyOnWriteMutableThreadContext.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractCopyOnWriteMutableThreadContext.java
index fe6c367..42529f7 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractCopyOnWriteMutableThreadContext.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractCopyOnWriteMutableThreadContext.java
@@ -27,8 +27,10 @@ import org.apache.logging.log4j.util.PropertiesUtil;
  * immutable. This means the Map can be passed to other threads without 
concern that it will be updated. Since it is
  * expected that the Map will be passed to many more log events than the 
number of keys it contains the performance
  * should be much better than if the Map was copied for each event.
+ *
+ * @since 2.7
  */
-public abstract class AbstractCopyOnWriteMutableThreadContext implements 
ThreadContextMap {
+public abstract class AbstractCopyOnWriteMutableThreadContext implements 
ThreadContextMap, ThreadContextMap2 {
     /**
      * Property name ({@value} ) for selecting {@code InheritableThreadLocal} 
(value "true") or plain
      * {@code ThreadLocal} (value is not "true") in the implementation.

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/4182abd0/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractGarbageFreeMutableThreadContext.java
----------------------------------------------------------------------
diff --git 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractGarbageFreeMutableThreadContext.java
 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractGarbageFreeMutableThreadContext.java
index 45010a0..73636a9 100644
--- 
a/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractGarbageFreeMutableThreadContext.java
+++ 
b/log4j-api/src/main/java/org/apache/logging/log4j/spi/AbstractGarbageFreeMutableThreadContext.java
@@ -23,8 +23,14 @@ import org.apache.logging.log4j.util.PropertiesUtil;
 
 /**
  * Garbage-free ThreadContextMap implementation backed by {@code 
MutableContextData}.
+ * <p>
+ * This implementation does <em>not</em> make a copy of its contents on every 
operation, so this data structure cannot
+ * be passed to log events. It is advisable to provide a fast way to copy data 
from this data structure into log
+ * events.
+ * </p>
+ * @since 2.7
  */
-public abstract class AbstractGarbageFreeMutableThreadContext implements 
ThreadContextMap {
+public abstract class AbstractGarbageFreeMutableThreadContext implements 
ThreadContextMap, ThreadContextMap2 {
     /**
      * Property name ({@value} ) for selecting {@code InheritableThreadLocal} 
(value "true") or plain
      * {@code ThreadLocal} (value is not "true") in the implementation.

Reply via email to