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/16 17:38:57 UTC

logging-log4j2 git commit: LOG4J2-1010 moved ContextDataInjector from core.impl to core package

Repository: logging-log4j2
Updated Branches:
  refs/heads/master debc56407 -> 7007b861c


LOG4J2-1010 moved ContextDataInjector from core.impl to core package


Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7007b861
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7007b861
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7007b861

Branch: refs/heads/master
Commit: 7007b861cc77dac2b693b9b21a699e3b64c2aefd
Parents: debc564
Author: rpopma <rp...@apache.org>
Authored: Sat Sep 17 02:39:03 2016 +0900
Committer: rpopma <rp...@apache.org>
Committed: Sat Sep 17 02:39:03 2016 +0900

----------------------------------------------------------------------
 .../logging/log4j/core/ContextDataInjector.java | 107 +++++++++++++++++++
 .../org/apache/logging/log4j/core/LogEvent.java |   2 +-
 .../logging/log4j/core/async/AsyncLogger.java   |   2 +-
 .../async/RingBufferLogEventTranslator.java     |   2 +-
 .../core/filter/DynamicThresholdFilter.java     |   3 +-
 .../core/filter/ThreadContextMapFilter.java     |   3 +-
 .../log4j/core/impl/ContextDataInjector.java    | 105 ------------------
 .../core/impl/ContextDataInjectorFactory.java   |   1 +
 .../logging/log4j/core/impl/Log4jLogEvent.java  |   1 +
 .../core/impl/ReusableLogEventFactory.java      |   1 +
 .../core/impl/ThreadContextDataInjector.java    |   1 +
 .../log4j/core/lookup/ContextMapLookup.java     |   3 +-
 .../log4j/perf/jmh/ThreadContextBenchmark.java  |   2 +-
 13 files changed, 118 insertions(+), 115 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/ContextDataInjector.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/ContextDataInjector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/ContextDataInjector.java
new file mode 100644
index 0000000..93f719b
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/ContextDataInjector.java
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache license, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the license for the specific language governing permissions and
+ * limitations under the license.
+ */
+package org.apache.logging.log4j.core;
+
+import java.util.List;
+
+import org.apache.logging.log4j.core.config.Property;
+import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
+import org.apache.logging.log4j.core.impl.ThreadContextDataInjector;
+import org.apache.logging.log4j.spi.ContextData;
+import org.apache.logging.log4j.spi.MutableContextData;
+
+/**
+ * Responsible for initializing the ContextData of LogEvents. Context data is data that is set by the application to be
+ * included in all subsequent log events.
+ * <p>
+ * The source of the context data is implementation-specific. The default source for context data is the ThreadContext.
+ * </p><p>
+ * In some asynchronous models, work may be delegated to several threads, while conceptually this work shares the same
+ * context. In such models, storing context data in {@code ThreadLocal} variables is not convenient or desirable.
+ * Users can configure the {@code ContextDataInjectorFactory} to provide custom {@code ContextDataInjector} objects,
+ * in order to initialize log events with context data from any arbitrary context.
+ * </p><p>
+ * When providing a custom {@code ContextDataInjector}, be aware that the {@code ContextDataFactory} may be invoked
+ * multiple times and the various components in Log4j that need access to context data may each have their own instance
+ * of {@code ContextDataInjector}.
+ * This includes the object(s) that populate log events, but also various lookups and filters that look at
+ * context data to determine whether an event should be logged.
+ * </p><p>
+ * Implementors should take particular note of how the different methods in the interface have different thread-safety
+ * guarantees to enable optimal performance.
+ * </p>
+ *
+ * @see ContextData
+ * @see ContextDataInjectorFactory
+ * @see org.apache.logging.log4j.ThreadContext
+ * @see ThreadContextDataInjector
+ * @since 2.7
+ */
+public interface ContextDataInjector {
+    /**
+     * Returns a {@code MutableContextData} object initialized with the specified properties and the appropriate
+     * context data. The returned value may be the specified parameter or a different object.
+     * <p>
+     * This method will be called for each log event to initialize its context data and implementors should take
+     * care to make this method as performant as possible while preserving at least the following thread-safety
+     * guarantee.
+     * </p><p>
+     * Thread-safety note: The returned object can safely be passed off to another thread: future changes in the
+     * underlying context data will not be reflected in the returned object.
+     * </p><p>
+     * Example implementation:
+     * </p>
+     * <pre>
+     * public MutableContextData injectContextData(List<Property> properties, MutableContextData reusable) {
+     *     if (properties == null || properties.isEmpty()) {
+     *         // assume context data is stored in a copy-on-write data structure that is safe to pass to another thread
+     *         return (MutableContextData) rawContextData();
+     *     }
+     *     // first copy configuration properties into the result
+     *     ThreadContextDataInjector.copyProperties(properties, reusable);
+     *
+     *     // then copy context data key-value pairs (may overwrite configuration properties)
+     *     reusable.addAll(rawContextData());
+     *     return reusable;
+     * }
+     * </pre>
+     *
+     * @param properties Properties from the log4j configuration to be added to the resulting ContextData. May be
+     *          {@code null} or empty
+     * @param reusable a {@code MutableContextData} instance that may be reused to avoid creating temporary objects
+     * @return a {@code MutableContextData} instance initialized with the specified properties and the appropriate
+     *          context data. The returned value may be the specified parameter or a different object.
+     * @see ThreadContextDataInjector#copyProperties(List, MutableContextData)
+     */
+    MutableContextData injectContextData(final List<Property> properties, final MutableContextData reusable);
+
+    /**
+     * Returns a {@code ContextData} object reflecting the current state of the context. Configuration properties
+     * are not included in the result.
+     * <p>
+     * This method may be called multiple times for each log event by Filters and Lookups and implementors should take
+     * care to make this method as performant as possible while preserving at least the following thread-safety
+     * guarantee.
+     * </p><p>
+     * Thread-safety note: The returned object can only be safely used <em>in the current thread</em>. Changes in the
+     * underlying context may or may not be reflected in the returned object, depending on the context data source and
+     * the implementation of this method. It is not safe to pass the returned object to another thread.
+     * </p>
+     * @return a {@code ContextData} object reflecting the current state of the context
+     */
+    ContextData rawContextData();
+}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java
index 9bdd4bf..bbcea0d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/LogEvent.java
@@ -43,7 +43,7 @@ import org.apache.logging.log4j.spi.ContextData;
  * Since version 2.7, {@link #getContextMap()} is deprecated in favor of {@link #getContextData()}, which
  * can carry both {@code ThreadContext} data as well as other context data supplied by the
  * {@linkplain org.apache.logging.log4j.core.impl.ContextDataInjectorFactory configured}
- * {@link org.apache.logging.log4j.core.impl.ContextDataInjector}.
+ * {@link ContextDataInjector}.
  * </p>
  */
 public interface LogEvent extends Serializable {

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
index 23322e2..46f5c7b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/AsyncLogger.java
@@ -28,7 +28,7 @@ import org.apache.logging.log4j.core.config.Configuration;
 import org.apache.logging.log4j.core.config.Property;
 import org.apache.logging.log4j.core.config.ReliabilityStrategy;
 import org.apache.logging.log4j.core.impl.ContextDataFactory;
-import org.apache.logging.log4j.core.impl.ContextDataInjector;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
 import org.apache.logging.log4j.core.impl.Log4jLogEvent;
 import org.apache.logging.log4j.core.util.Clock;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java
index 04d9ce1..facfc57 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/RingBufferLogEventTranslator.java
@@ -19,7 +19,7 @@ package org.apache.logging.log4j.core.async;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext.ContextStack;
-import org.apache.logging.log4j.core.impl.ContextDataInjector;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
 import org.apache.logging.log4j.spi.MutableContextData;
 import org.apache.logging.log4j.message.Message;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
index 9debae7..d52f1ec 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/DynamicThresholdFilter.java
@@ -31,12 +31,11 @@ import org.apache.logging.log4j.core.config.plugins.Plugin;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
-import org.apache.logging.log4j.core.impl.ContextDataInjector;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
 import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.spi.ContextData;
-import org.apache.logging.log4j.spi.MutableContextData;
 
 /**
  * Compares against a log level that is associated with a context value. By default the context is the

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ThreadContextMapFilter.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ThreadContextMapFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ThreadContextMapFilter.java
index 59768e3..d10ea12 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ThreadContextMapFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ThreadContextMapFilter.java
@@ -33,12 +33,11 @@ import org.apache.logging.log4j.core.config.plugins.PluginAliases;
 import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
 import org.apache.logging.log4j.core.config.plugins.PluginElement;
 import org.apache.logging.log4j.core.config.plugins.PluginFactory;
-import org.apache.logging.log4j.core.impl.ContextDataInjector;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
 import org.apache.logging.log4j.core.util.KeyValuePair;
 import org.apache.logging.log4j.message.Message;
 import org.apache.logging.log4j.spi.ContextData;
-import org.apache.logging.log4j.spi.MutableContextData;
 
 /**
  * Filter based on a value in the Thread Context Map (MDC).

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjector.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjector.java
deleted file mode 100644
index a74201b..0000000
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjector.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache license, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the license for the specific language governing permissions and
- * limitations under the license.
- */
-package org.apache.logging.log4j.core.impl;
-
-import java.util.List;
-
-import org.apache.logging.log4j.core.config.Property;
-import org.apache.logging.log4j.spi.ContextData;
-import org.apache.logging.log4j.spi.MutableContextData;
-
-/**
- * Responsible for initializing the ContextData of LogEvents. Context data is data that is set by the application to be
- * included in all subsequent log events.
- * <p>
- * The source of the context data is implementation-specific. The default source for context data is the ThreadContext.
- * </p><p>
- * In some asynchronous models, work may be delegated to several threads, while conceptually this work shares the same
- * context. In such models, storing context data in {@code ThreadLocal} variables is not convenient or desirable.
- * Users can configure the {@code ContextDataInjectorFactory} to provide custom {@code ContextDataInjector} objects,
- * in order to initialize log events with context data from any arbitrary context.
- * </p><p>
- * When providing a custom {@code ContextDataInjector}, be aware that the {@code ContextDataFactory} may be invoked
- * multiple times and the various components in Log4j that need access to context data may each have their own instance
- * of {@code ContextDataInjector}.
- * This includes the object(s) that populate log events, but also various lookups and filters that look at
- * context data to determine whether an event should be logged.
- * </p><p>
- * Implementors should take particular note of how the different methods in the interface have different thread-safety
- * guarantees to enable optimal performance.
- * </p>
- *
- * @see ContextData
- * @see ContextDataInjectorFactory
- * @see org.apache.logging.log4j.ThreadContext
- * @see ThreadContextDataInjector
- * @since 2.7
- */
-public interface ContextDataInjector {
-    /**
-     * Returns a {@code MutableContextData} object initialized with the specified properties and the appropriate
-     * context data. The returned value may be the specified parameter or a different object.
-     * <p>
-     * This method will be called for each log event to initialize its context data and implementors should take
-     * care to make this method as performant as possible while preserving at least the following thread-safety
-     * guarantee.
-     * </p><p>
-     * Thread-safety note: The returned object can safely be passed off to another thread: future changes in the
-     * underlying context data will not be reflected in the returned object.
-     * </p><p>
-     * Example implementation:
-     * </p>
-     * <pre>
-     * public MutableContextData injectContextData(List<Property> properties, MutableContextData reusable) {
-     *     if (properties == null || properties.isEmpty()) {
-     *         // assume context data is stored in a copy-on-write data structure that is safe to pass to another thread
-     *         return (MutableContextData) rawContextData();
-     *     }
-     *     // first copy configuration properties into the result
-     *     ThreadContextDataInjector.copyProperties(properties, reusable);
-     *
-     *     // then copy context data key-value pairs (may overwrite configuration properties)
-     *     reusable.addAll(rawContextData());
-     *     return reusable;
-     * }
-     * </pre>
-     *
-     * @param properties Properties from the log4j configuration to be added to the resulting ContextData. May be
-     *          {@code null} or empty
-     * @param reusable a {@code MutableContextData} instance that may be reused to avoid creating temporary objects
-     * @return a {@code MutableContextData} instance initialized with the specified properties and the appropriate
-     *          context data. The returned value may be the specified parameter or a different object.
-     * @see ThreadContextDataInjector#copyProperties(List, MutableContextData)
-     */
-    MutableContextData injectContextData(final List<Property> properties, final MutableContextData reusable);
-
-    /**
-     * Returns a {@code ContextData} object reflecting the current state of the context. Configuration properties
-     * are not included in the result.
-     * <p>
-     * This method may be called multiple times for each log event by Filters and Lookups and implementors should take
-     * care to make this method as performant as possible while preserving at least the following thread-safety
-     * guarantee.
-     * </p><p>
-     * Thread-safety note: The returned object can only be safely used <em>in the current thread</em>. Changes in the
-     * underlying context may or may not be reflected in the returned object, depending on the context data source and
-     * the implementation of this method. It is not safe to pass the returned object to another thread.
-     * </p>
-     * @return a {@code ContextData} object reflecting the current state of the context
-     */
-    ContextData rawContextData();
-}

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjectorFactory.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjectorFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjectorFactory.java
index 511a618..31e1013 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjectorFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ContextDataInjectorFactory.java
@@ -17,6 +17,7 @@
 package org.apache.logging.log4j.core.impl;
 
 import org.apache.logging.log4j.ThreadContextAccess;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.spi.ContextData;
 import org.apache.logging.log4j.spi.CopyOnWrite;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
index f8af061..7b7f038 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/Log4jLogEvent.java
@@ -26,6 +26,7 @@ import java.util.Objects;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.spi.ContextData;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.async.RingBufferLogEvent;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java
index 748148b..7b27386 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ReusableLogEventFactory.java
@@ -21,6 +21,7 @@ import java.util.List;
 import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.Marker;
 import org.apache.logging.log4j.ThreadContext;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.async.ThreadNameCachingStrategy;
 import org.apache.logging.log4j.core.config.Property;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
index 65980f7..2bfa69c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/impl/ThreadContextDataInjector.java
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.ThreadContextAccess;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.config.Property;
 import org.apache.logging.log4j.spi.ContextData;
 import org.apache.logging.log4j.spi.MutableContextData;

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
index 6bffb2b..3d4a1a0 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/ContextMapLookup.java
@@ -19,10 +19,9 @@ package org.apache.logging.log4j.core.lookup;
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.core.LogEvent;
 import org.apache.logging.log4j.core.config.plugins.Plugin;
-import org.apache.logging.log4j.core.impl.ContextDataInjector;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
 import org.apache.logging.log4j.spi.ContextData;
-import org.apache.logging.log4j.spi.MutableContextData;
 
 /**
  * Looks up keys from the context. By default this is the {@link ThreadContext}, but users may

http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7007b861/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
----------------------------------------------------------------------
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
index c45f4c6..3f1ecbf 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ThreadContextBenchmark.java
@@ -28,7 +28,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.logging.log4j.ThreadContext;
 import org.apache.logging.log4j.ThreadContextBenchmarkAccess;
 import org.apache.logging.log4j.core.config.Property;
-import org.apache.logging.log4j.core.impl.ContextDataInjector;
+import org.apache.logging.log4j.core.ContextDataInjector;
 import org.apache.logging.log4j.core.impl.ContextDataInjectorFactory;
 import org.apache.logging.log4j.perf.nogc.OpenHashMapContextData;
 import org.apache.logging.log4j.spi.CopyOnWriteOpenHashMapThreadContextMap;