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/12 14:17:09 UTC
logging-log4j2 git commit: LOG4J2-1447 No need for ArrayContextData
to implement the ThreadContextMap interface; deleted unused methods
Repository: logging-log4j2
Updated Branches:
refs/heads/master dbcb5a7ff -> 0fac914f9
LOG4J2-1447 No need for ArrayContextData to implement the ThreadContextMap interface; deleted unused methods
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/0fac914f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/0fac914f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/0fac914f
Branch: refs/heads/master
Commit: 0fac914f9c76552a092990f62fae7cfae8777149
Parents: dbcb5a7
Author: rpopma <rp...@apache.org>
Authored: Mon Sep 12 23:17:01 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Mon Sep 12 23:17:01 2016 +0900
----------------------------------------------------------------------
.../logging/log4j/util/ArrayContextData.java | 29 +---
.../log4j/util/ArrayContextDataTest.java | 133 +++++++------------
.../jmh/ArrayContextDataVsHashMapBenchmark.java | 2 +-
3 files changed, 52 insertions(+), 112 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0fac914f/log4j-api/src/main/java/org/apache/logging/log4j/util/ArrayContextData.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/util/ArrayContextData.java b/log4j-api/src/main/java/org/apache/logging/log4j/util/ArrayContextData.java
index 01b2c8c..fd9e9bb 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/util/ArrayContextData.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/util/ArrayContextData.java
@@ -19,7 +19,6 @@ package org.apache.logging.log4j.util;
import java.io.IOException;
import java.io.InvalidObjectException;
import java.util.Arrays;
-import java.util.Collections;
import java.util.ConcurrentModificationException;
import java.util.HashMap;
import java.util.Map;
@@ -27,7 +26,6 @@ import java.util.Objects;
import org.apache.logging.log4j.spi.ContextData;
import org.apache.logging.log4j.spi.MutableContextData;
-import org.apache.logging.log4j.spi.ThreadContextMap;
/**
* Array-based implementation of the {@code ContextData} interface. Keys are held in a sorted array.
@@ -51,7 +49,7 @@ import org.apache.logging.log4j.spi.ThreadContextMap;
*
* @since 2.7
*/
-public class ArrayContextData implements MutableContextData, ThreadContextMap {
+public class ArrayContextData implements MutableContextData {
/**
* The default initial capacity.
@@ -161,22 +159,6 @@ public class ArrayContextData implements MutableContextData, ThreadContextMap {
return immutable;
}
- @Override
- public Map<String, String> getCopy() {
- return asMap();
- }
-
- @Override
- public Map<String, String> getImmutableMapOrNull() {
- return isEmpty() ? null : Collections.unmodifiableMap(asMap());
- }
-
- @Override
- public String get(final String key) {
- final Object result = getValue(key);
- return result == null ? null : String.valueOf(result);
- }
-
@SuppressWarnings("unchecked")
@Override
public <V> V getValue(final String key) {
@@ -208,11 +190,6 @@ public class ArrayContextData implements MutableContextData, ThreadContextMap {
}
@Override
- public void put(final String key, final String value) {
- putValue(key, value);
- }
-
- @Override
public void putValue(final String key, final Object value) {
assertNotFrozen();
assertNoConcurrentModification();
@@ -253,10 +230,6 @@ public class ArrayContextData implements MutableContextData, ThreadContextMap {
}
}
- public void initFrom(final ArrayContextData other) {
- initFrom0(other);
- }
-
private void initFrom0(final ArrayContextData other) {
if (keys.length < other.size) {
keys = new String[other.threshold];
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0fac914f/log4j-api/src/test/java/org/apache/logging/log4j/util/ArrayContextDataTest.java
----------------------------------------------------------------------
diff --git a/log4j-api/src/test/java/org/apache/logging/log4j/util/ArrayContextDataTest.java b/log4j-api/src/test/java/org/apache/logging/log4j/util/ArrayContextDataTest.java
index ae79888..274972e 100644
--- a/log4j-api/src/test/java/org/apache/logging/log4j/util/ArrayContextDataTest.java
+++ b/log4j-api/src/test/java/org/apache/logging/log4j/util/ArrayContextDataTest.java
@@ -146,35 +146,9 @@ public class ArrayContextDataTest {
expected.put("3", "3value");
assertEquals(expected, original.asMap());
- }
-
- @Test
- public void testGetCopyDelegatesToAsMap() throws Exception {
- final ArrayContextData original = new ArrayContextData();
- original.putValue("a", "avalue");
- assertEquals(original.getCopy(), original.asMap());
-
- original.putValue("B", "Bvalue");
- assertEquals(original.getCopy(), original.asMap());
-
- original.putValue("3", "3value");
- assertEquals(original.getCopy(), original.asMap());
- }
-
- @Test
- public void testGetImmutableMapOrNull() throws Exception {
- final ArrayContextData original = new ArrayContextData();
- original.putValue("a", "avalue");
- assertEquals(original.getImmutableMapOrNull(), original.asMap());
-
- original.putValue("B", "Bvalue");
- assertEquals(original.getImmutableMapOrNull(), original.asMap());
-
- original.putValue("3", "3value");
- assertEquals(original.getImmutableMapOrNull(), original.asMap());
try {
- original.getImmutableMapOrNull().put("abc", "xyz");
+ original.asMap().put("abc", "xyz");
fail("Expected map to be immutable");
} catch (final UnsupportedOperationException ok) {
//ok
@@ -184,57 +158,57 @@ public class ArrayContextDataTest {
@Test
public void testPutAll_KeepsExistingValues() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
- original.put("b", "bbb");
- original.put("c", "ccc");
+ original.putValue("a", "aaa");
+ original.putValue("b", "bbb");
+ original.putValue("c", "ccc");
assertEquals("size", 3, original.size());
// add empty context data
original.putAll(new ArrayContextData());
assertEquals("size after put empty", 3, original.size());
- assertEquals("aaa", original.get("a"));
- assertEquals("bbb", original.get("b"));
- assertEquals("ccc", original.get("c"));
+ assertEquals("aaa", original.getValue("a"));
+ assertEquals("bbb", original.getValue("b"));
+ assertEquals("ccc", original.getValue("c"));
final ArrayContextData other = new ArrayContextData();
- other.put("1", "111");
- other.put("2", "222");
- other.put("3", "333");
+ other.putValue("1", "111");
+ other.putValue("2", "222");
+ other.putValue("3", "333");
original.putAll(other);
assertEquals("size after put other", 6, original.size());
- assertEquals("aaa", original.get("a"));
- assertEquals("bbb", original.get("b"));
- assertEquals("ccc", original.get("c"));
- assertEquals("111", original.get("1"));
- assertEquals("222", original.get("2"));
- assertEquals("333", original.get("3"));
+ assertEquals("aaa", original.getValue("a"));
+ assertEquals("bbb", original.getValue("b"));
+ assertEquals("ccc", original.getValue("c"));
+ assertEquals("111", original.getValue("1"));
+ assertEquals("222", original.getValue("2"));
+ assertEquals("333", original.getValue("3"));
}
@Test
public void testPutAllSelfDoesNotModify() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
- original.put("b", "bbb");
- original.put("c", "ccc");
+ original.putValue("a", "aaa");
+ original.putValue("b", "bbb");
+ original.putValue("c", "ccc");
assertEquals("size", 3, original.size());
// putAll with self
original.putAll(original);
assertEquals("size after put empty", 3, original.size());
- assertEquals("aaa", original.get("a"));
- assertEquals("bbb", original.get("b"));
- assertEquals("ccc", original.get("c"));
+ assertEquals("aaa", original.getValue("a"));
+ assertEquals("bbb", original.getValue("b"));
+ assertEquals("ccc", original.getValue("c"));
}
@Test(expected = ConcurrentModificationException.class)
public void testConcurrentModificationBiConsumerPut() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
+ original.putValue("a", "aaa");
original.forEach(new BiConsumer<String, Object>() {
@Override
public void accept(final String s, final Object o) {
- original.put("c", "other");
+ original.putValue("c", "other");
}
});
}
@@ -242,7 +216,7 @@ public class ArrayContextDataTest {
@Test(expected = ConcurrentModificationException.class)
public void testConcurrentModificationBiConsumerPutValue() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
+ original.putValue("a", "aaa");
original.forEach(new BiConsumer<String, Object>() {
@Override
public void accept(final String s, final Object o) {
@@ -254,7 +228,7 @@ public class ArrayContextDataTest {
@Test(expected = ConcurrentModificationException.class)
public void testConcurrentModificationBiConsumerRemove() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
+ original.putValue("a", "aaa");
original.forEach(new BiConsumer<String, Object>() {
@Override
public void accept(final String s, final Object o) {
@@ -266,7 +240,7 @@ public class ArrayContextDataTest {
@Test(expected = ConcurrentModificationException.class)
public void testConcurrentModificationBiConsumerClear() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
+ original.putValue("a", "aaa");
original.forEach(new BiConsumer<String, Object>() {
@Override
public void accept(final String s, final Object o) {
@@ -278,11 +252,11 @@ public class ArrayContextDataTest {
@Test(expected = ConcurrentModificationException.class)
public void testConcurrentModificationTriConsumerPut() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
+ original.putValue("a", "aaa");
original.forEach(new TriConsumer<String, Object, Object>() {
@Override
public void accept(final String s, final Object o, final Object o2) {
- original.put("c", "other");
+ original.putValue("c", "other");
}
}, null);
}
@@ -290,7 +264,7 @@ public class ArrayContextDataTest {
@Test(expected = ConcurrentModificationException.class)
public void testConcurrentModificationTriConsumerPutValue() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
+ original.putValue("a", "aaa");
original.forEach(new TriConsumer<String, Object, Object>() {
@Override
public void accept(final String s, final Object o, final Object o2) {
@@ -302,7 +276,7 @@ public class ArrayContextDataTest {
@Test(expected = ConcurrentModificationException.class)
public void testConcurrentModificationTriConsumerRemove() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
+ original.putValue("a", "aaa");
original.forEach(new TriConsumer<String, Object, Object>() {
@Override
public void accept(final String s, final Object o, final Object o2) {
@@ -314,7 +288,7 @@ public class ArrayContextDataTest {
@Test(expected = ConcurrentModificationException.class)
public void testConcurrentModificationTriConsumerClear() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
+ original.putValue("a", "aaa");
original.forEach(new TriConsumer<String, Object, Object>() {
@Override
public void accept(final String s, final Object o, final Object o2) {
@@ -337,13 +311,6 @@ public class ArrayContextDataTest {
}
@Test(expected = UnsupportedOperationException.class)
- public void testFreezeProhibitsPut() {
- final ArrayContextData original = new ArrayContextData();
- original.freeze();
- original.put("a", "aaa");
- }
-
- @Test(expected = UnsupportedOperationException.class)
public void testFreezeProhibitsPutValue() {
final ArrayContextData original = new ArrayContextData();
original.freeze();
@@ -353,7 +320,7 @@ public class ArrayContextDataTest {
@Test(expected = UnsupportedOperationException.class)
public void testFreezeProhibitsRemove() {
final ArrayContextData original = new ArrayContextData();
- original.put("b", "bbb");
+ original.putValue("b", "bbb");
original.freeze();
original.remove("b"); // existing key: modifies the collection
}
@@ -361,7 +328,7 @@ public class ArrayContextDataTest {
@Test
public void testFreezeAllowsRemoveOfNonExistingKey() {
final ArrayContextData original = new ArrayContextData();
- original.put("b", "bbb");
+ original.putValue("b", "bbb");
original.freeze();
original.remove("a"); // no actual modification
}
@@ -376,7 +343,7 @@ public class ArrayContextDataTest {
@Test(expected = UnsupportedOperationException.class)
public void testFreezeProhibitsClear() {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "aaa");
+ original.putValue("a", "aaa");
original.freeze();
original.clear();
}
@@ -391,11 +358,11 @@ public class ArrayContextDataTest {
@Test
public void testPutInsertsInAlphabeticOrder() throws Exception {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "avalue");
- original.put("B", "Bvalue");
- original.put("3", "3value");
- original.put("c", "cvalue");
- original.put("d", "dvalue");
+ original.putValue("a", "avalue");
+ original.putValue("B", "Bvalue");
+ original.putValue("3", "3value");
+ original.putValue("c", "cvalue");
+ original.putValue("d", "dvalue");
assertEquals("avalue", original.getValue("a"));
assertEquals("avalue", original.getValueAt(2));
@@ -540,19 +507,19 @@ public class ArrayContextDataTest {
@Test
public void testGet() throws Exception {
final ArrayContextData original = new ArrayContextData();
- original.put("a", "avalue");
- original.put("B", "Bvalue");
- original.put("3", "3value");
+ original.putValue("a", "avalue");
+ original.putValue("B", "Bvalue");
+ original.putValue("3", "3value");
- assertEquals("avalue", original.get("a"));
- assertEquals("Bvalue", original.get("B"));
- assertEquals("3value", original.get("3"));
+ assertEquals("avalue", original.getValue("a"));
+ assertEquals("Bvalue", original.getValue("B"));
+ assertEquals("3value", original.getValue("3"));
original.putValue("0", "0value");
- assertEquals("0value", original.get("0"));
- assertEquals("3value", original.get("3"));
- assertEquals("Bvalue", original.get("B"));
- assertEquals("avalue", original.get("a"));
+ assertEquals("0value", original.getValue("0"));
+ assertEquals("3value", original.getValue("3"));
+ assertEquals("Bvalue", original.getValue("B"));
+ assertEquals("avalue", original.getValue("a"));
}
@Test
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/0fac914f/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
index 24148e1..23cca6b 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ArrayContextDataVsHashMapBenchmark.java
@@ -221,7 +221,7 @@ public class ArrayContextDataVsHashMapBenchmark {
@Benchmark
public int putArrayContextData() {
- populatedContextData.put("someKey", "someValue");
+ populatedContextData.putValue("someKey", "someValue");
return populatedContextData.size();
}