You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rp...@apache.org on 2016/08/22 15:40:21 UTC
[07/16] logging-log4j2 git commit: LOG4J2-1516 moved putAll(Map)
method into separate ThreadContextMap2 interface
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 <rp...@apache.org>
Authored: Sat Aug 20 09:15:43 2016 +0900
Committer: rpopma <rp...@apache.org>
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.