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/09/22 02:04:32 UTC
[5/8] logging-log4j2 git commit: LOG4J2-1447 change the contract of
ThreadContextMap2 to include the role of MutableContextDataSupplier
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/09eb4f44
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/09eb4f44
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/09eb4f44
Branch: refs/heads/master
Commit: 09eb4f4483600bc2f9d29052bb8589dc10b8d858
Parents: e1b86f5
Author: rpopma <rp...@apache.org>
Authored: Thu Sep 22 11:01:26 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Thu Sep 22 11:01:26 2016 +0900
----------------------------------------------------------------------
.../org/apache/logging/slf4j/MDCContextMap.java | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/09eb4f44/log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/MDCContextMap.java
----------------------------------------------------------------------
diff --git a/log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/MDCContextMap.java b/log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/MDCContextMap.java
index 5202ca7..0593e3c 100644
--- a/log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/MDCContextMap.java
+++ b/log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/MDCContextMap.java
@@ -19,7 +19,9 @@ package org.apache.logging.slf4j;
import java.util.Map;
import java.util.Map.Entry;
+import org.apache.logging.log4j.spi.MutableContextData;
import org.apache.logging.log4j.spi.ThreadContextMap2;
+import org.apache.logging.log4j.util.ArrayContextData;
import org.slf4j.MDC;
/**
@@ -27,6 +29,11 @@ import org.slf4j.MDC;
*/
public class MDCContextMap implements ThreadContextMap2 {
+ private static final MutableContextData EMPTY_CONTEXT_DATA = new ArrayContextData();
+ static {
+ EMPTY_CONTEXT_DATA.freeze();
+ }
+
@Override
public void put(final String key, final String value) {
MDC.put(key, value);
@@ -75,4 +82,17 @@ public class MDCContextMap implements ThreadContextMap2 {
public boolean isEmpty() {
return MDC.getCopyOfContextMap().isEmpty();
}
+
+ @Override
+ public MutableContextData getMutableContextData() {
+ final Map<String, String> copy = getCopy();
+ if (copy.isEmpty()) {
+ return EMPTY_CONTEXT_DATA;
+ }
+ final MutableContextData result = new ArrayContextData();
+ for (Entry<String, String> entry : copy.entrySet()) {
+ result.putValue(entry.getKey(), entry.getValue());
+ }
+ return result;
+ }
}