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 2017/01/17 20:54:22 UTC
[31/32] logging-log4j2 git commit: LOG4J2-1648
ObjectThreadContextMap.putAllValues
LOG4J2-1648 ObjectThreadContextMap.putAllValues
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/b886eca8
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/b886eca8
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/b886eca8
Branch: refs/heads/LOG4J2-1748and1780-remove-ExecutorService-from-LoggerContext
Commit: b886eca883699b0ba07d3ab5fc2416efdbed34bf
Parents: 5b6322a
Author: Mikael St�ldal <mi...@magine.com>
Authored: Tue Jan 17 17:42:19 2017 +0100
Committer: Mikael St�ldal <mi...@magine.com>
Committed: Tue Jan 17 17:42:19 2017 +0100
----------------------------------------------------------------------
.../spi/CopyOnWriteSortedArrayThreadContextMap.java | 14 ++++++++++++++
.../spi/GarbageFreeSortedArrayThreadContextMap.java | 11 +++++++++++
.../logging/log4j/spi/ObjectThreadContextMap.java | 10 ++++++++++
3 files changed, 35 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b886eca8/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
index 3b06686..05b783c 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/CopyOnWriteSortedArrayThreadContextMap.java
@@ -134,6 +134,20 @@ class CopyOnWriteSortedArrayThreadContextMap implements ReadOnlyThreadContextMap
}
@Override
+ public <V> void putAllValues(final Map<String, V> values) {
+ if (values == null || values.isEmpty()) {
+ return;
+ }
+ StringMap map = localMap.get();
+ map = map == null ? createStringMap() : createStringMap(map);
+ for (final Map.Entry<String, V> entry : values.entrySet()) {
+ map.putValue(entry.getKey(), entry.getValue());
+ }
+ map.freeze();
+ localMap.set(map);
+ }
+
+ @Override
public String get(final String key) {
return (String) getValue(key);
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b886eca8/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
index d8be3c9..f11fd66 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/GarbageFreeSortedArrayThreadContextMap.java
@@ -131,6 +131,17 @@ class GarbageFreeSortedArrayThreadContextMap implements ReadOnlyThreadContextMap
}
@Override
+ public <V> void putAllValues(final Map<String, V> values) {
+ if (values == null || values.isEmpty()) {
+ return;
+ }
+ final StringMap map = getThreadLocalMap();
+ for (final Map.Entry<String, V> entry : values.entrySet()) {
+ map.putValue(entry.getKey(), entry.getValue());
+ }
+ }
+
+ @Override
public String get(final String key) {
return (String) getValue(key);
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/b886eca8/log4j-api/src/main/java/org/apache/logging/log4j/spi/ObjectThreadContextMap.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/spi/ObjectThreadContextMap.java b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ObjectThreadContextMap.java
index 1c358aa..2148ddb 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/spi/ObjectThreadContextMap.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/spi/ObjectThreadContextMap.java
@@ -16,6 +16,8 @@
*/
package org.apache.logging.log4j.spi;
+import java.util.Map;
+
/**
* Extension service provider interface to allow putting Object values in the
* {@link org.apache.logging.log4j.ThreadContext}.
@@ -41,4 +43,12 @@ public interface ObjectThreadContextMap extends CleanableThreadContextMap {
* @param value the value to add. Values may be {@code null}.
*/
<V> void putValue(String key, V value);
+
+ /**
+ * Puts all given key-value pairs into the collection.
+ *
+ * @param values the map of key-value pairs to add
+ */
+ <V> void putAllValues(Map<String, V> values);
+
}