Thanks Mikael! Sent from my iPhone
> On Jan 18, 2017, at 1:42, mi...@apache.org wrote: > > Repository: logging-log4j2 > Updated Branches: > refs/heads/master 5b6322ae7 -> b886eca88 > > > 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/master > Commit: b886eca883699b0ba07d3ab5fc2416efdbed34bf > Parents: 5b6322a > Author: Mikael Ståldal <mikael.stal...@magine.com> > Authored: Tue Jan 17 17:42:19 2017 +0100 > Committer: Mikael Ståldal <mikael.stal...@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); > + > } > --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org