LOG4J2-1447 change the contract of ThreadContextMap2 to include the role of MutableContextDataSupplier
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/e1b86f51 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/e1b86f51 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/e1b86f51 Branch: refs/heads/master Commit: e1b86f515e6f97866fa2e6ff8a3ba054c315a934 Parents: fc68248 Author: rpopma <rpo...@apache.org> Authored: Thu Sep 22 11:01:04 2016 +0900 Committer: rpopma <rpo...@apache.org> Committed: Thu Sep 22 11:01:04 2016 +0900 ---------------------------------------------------------------------- .../src/main/java/org/apache/logging/log4j/ThreadContext.java | 3 +++ .../org/apache/logging/log4j/spi/DefaultThreadContextMap.java | 3 +-- .../main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1b86f51/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java b/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java index 4636469..f282397 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/ThreadContext.java @@ -27,6 +27,7 @@ import java.util.Map; import java.util.NoSuchElementException; import org.apache.logging.log4j.message.ParameterizedMessage; +import org.apache.logging.log4j.spi.DefaultThreadContextMap; import org.apache.logging.log4j.spi.DefaultThreadContextStack; import org.apache.logging.log4j.spi.NoOpThreadContextMap; import org.apache.logging.log4j.spi.ThreadContextMap; @@ -249,6 +250,8 @@ public final class ThreadContext { public static void putAll(final Map<String, String> m) { if (contextMap instanceof ThreadContextMap2) { ((ThreadContextMap2) contextMap).putAll(m); + } else if (contextMap instanceof DefaultThreadContextMap) { + ((DefaultThreadContextMap) contextMap).putAll(m); } else { for (final Map.Entry<String, String> entry: m.entrySet()) { contextMap.put(entry.getKey(), entry.getValue()); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1b86f51/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java index 1c01c0b..143c2e1 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/DefaultThreadContextMap.java @@ -30,7 +30,7 @@ import org.apache.logging.log4j.util.TriConsumer; * 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. */ -public class DefaultThreadContextMap implements ThreadContextMap2, ContextData { +public class DefaultThreadContextMap implements ThreadContextMap, ContextData { /** * Property name ({@value} ) for selecting {@code InheritableThreadLocal} (value "true") or plain @@ -80,7 +80,6 @@ public class DefaultThreadContextMap implements ThreadContextMap2, ContextData { localMap.set(Collections.unmodifiableMap(map)); } - @Override public void putAll(final Map<String, String> m) { if (!useMap) { return; http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/e1b86f51/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java ---------------------------------------------------------------------- diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java index 4def1b3..6f831c3 100644 --- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java +++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ThreadContextMap2.java @@ -25,7 +25,7 @@ import java.util.Map; * @see ThreadContextMap * @since 2.7 */ -public interface ThreadContextMap2 extends ThreadContextMap { +public interface ThreadContextMap2 extends ThreadContextMap, MutableContextDataSupplier { /** * Puts all given context map entries into the current thread's