You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2022/01/02 19:34:20 UTC

[logging-log4j2] branch master updated: Move DI SPI to log4j-plugins

This is an automated email from the ASF dual-hosted git repository.

mattsicker pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/master by this push:
     new 640d923  Move DI SPI to log4j-plugins
640d923 is described below

commit 640d923716ff0cf5f31a14dbd4ea00c52548504a
Author: Matt Sicker <ma...@apache.org>
AuthorDate: Sun Jan 2 13:33:24 2022 -0600

    Move DI SPI to log4j-plugins
    
    This will enable the plugin system to be used standalone.
---
 log4j-core-test/src/test/java9/module-info.java    |  1 -
 log4j-core/src/main/java/module-info.java          |  7 +++--
 .../log4j/plugins/spi}/BeanManagerTest.java        |  4 +--
 .../log4j/plugins/spi}/InjectionPointTest.java     |  8 +++---
 .../log4j/plugins/spi}/InjectionTargetTest.java    | 11 +++-----
 log4j-plugins/src/main/java/module-info.java       |  2 ++
 .../log4j/plugins/spi}/AmbiguousBeanException.java |  2 +-
 .../apache/logging/log4j/plugins/spi}/Bean.java    |  2 +-
 .../logging/log4j/plugins/spi}/BeanManager.java    |  3 ++-
 .../log4j/plugins/spi}/DefinitionException.java    |  2 +-
 .../plugins/spi}/IllegalProductException.java      |  2 +-
 .../log4j/plugins/spi}/InitializationContext.java  |  2 +-
 .../plugins/spi}/InitializationException.java      |  2 +-
 .../log4j/plugins/spi}/InjectionException.java     |  2 +-
 .../logging/log4j/plugins/spi}/InjectionPoint.java |  2 +-
 .../log4j/plugins/spi}/InjectionTarget.java        |  2 +-
 .../log4j/plugins/spi}/InjectionTargetFactory.java |  2 +-
 .../log4j/plugins/spi}/LoggerContextScoped.java    |  2 +-
 .../logging/log4j/plugins/spi}/Producer.java       |  2 +-
 .../log4j/plugins/spi}/ProducerFactory.java        |  2 +-
 .../log4j/plugins/spi}/ResolutionException.java    |  2 +-
 .../logging/log4j/plugins/spi}/ScopeContext.java   |  2 +-
 .../plugins/spi}/UnsatisfiedBeanException.java     |  2 +-
 .../log4j/plugins/spi}/ValidationException.java    |  2 +-
 .../log4j/plugins/spi}/impl/AbstractBean.java      |  4 +--
 .../log4j/plugins/spi}/impl/AbstractProducer.java  | 12 ++++-----
 .../plugins/spi}/impl/AbstractProducerFactory.java |  8 +++---
 .../plugins/spi}/impl/DefaultBeanManager.java      | 30 +++++++++++-----------
 .../spi}/impl/DefaultInitializationContext.java    |  6 ++---
 .../plugins/spi}/impl/DefaultInjectionPoint.java   |  6 ++---
 .../plugins/spi}/impl/DefaultInjectionTarget.java  | 10 ++++----
 .../spi}/impl/DefaultInjectionTargetFactory.java   | 14 +++++-----
 .../plugins/spi}/impl/DefaultScopeContext.java     |  8 +++---
 .../plugins/spi}/impl/DependentScopeContext.java   |  8 +++---
 .../log4j/plugins/spi}/impl/FieldProducer.java     | 10 ++++----
 .../plugins/spi}/impl/FieldProducerFactory.java    | 10 ++++----
 .../plugins/spi}/impl/InjectionTargetBean.java     | 12 ++++-----
 .../logging/log4j/plugins/spi}/impl/Injector.java  | 24 ++++++++---------
 .../log4j/plugins/spi}/impl/MethodProducer.java    | 12 ++++-----
 .../plugins/spi}/impl/MethodProducerFactory.java   | 10 ++++----
 .../log4j/plugins/spi}/impl/OptionalBean.java      |  8 +++---
 .../log4j/plugins/spi}/impl/ProducerBean.java      | 12 ++++-----
 .../log4j/plugins/spi}/impl/ProvidedBean.java      |  8 +++---
 .../log4j/plugins/spi}/impl/ProviderBean.java      |  8 +++---
 44 files changed, 145 insertions(+), 145 deletions(-)

diff --git a/log4j-core-test/src/test/java9/module-info.java b/log4j-core-test/src/test/java9/module-info.java
index 03a6eac..d925eef 100644
--- a/log4j-core-test/src/test/java9/module-info.java
+++ b/log4j-core-test/src/test/java9/module-info.java
@@ -28,7 +28,6 @@ open module org.apache.logging.log4j.core {
     exports org.apache.logging.log4j.core.config.arbiters;
     exports org.apache.logging.log4j.core.config.builder;
     exports org.apache.logging.log4j.core.config.di;
-    exports org.apache.logging.log4j.core.config.di.impl;
     exports org.apache.logging.log4j.core.config.plugins;
     exports org.apache.logging.log4j.core.config.plugins.convert;
     exports org.apache.logging.log4j.core.config.plugins.util;
diff --git a/log4j-core/src/main/java/module-info.java b/log4j-core/src/main/java/module-info.java
index cb34b89..7518de2 100644
--- a/log4j-core/src/main/java/module-info.java
+++ b/log4j-core/src/main/java/module-info.java
@@ -29,8 +29,6 @@ module org.apache.logging.log4j.core {
     exports org.apache.logging.log4j.core.config.builder.api;
     exports org.apache.logging.log4j.core.config.builder.impl;
     exports org.apache.logging.log4j.core.config.composite;
-    exports org.apache.logging.log4j.core.config.di;
-    exports org.apache.logging.log4j.core.config.di.impl;
     exports org.apache.logging.log4j.core.config.json;
     exports org.apache.logging.log4j.core.config.plugins;
     exports org.apache.logging.log4j.core.config.plugins.convert;
@@ -60,10 +58,10 @@ module org.apache.logging.log4j.core {
     exports org.apache.logging.log4j.core.util;
     exports org.apache.logging.log4j.core.util.datetime;
 
-    // Required Dependenceis
+    // Required Dependencies
     requires transitive org.apache.logging.log4j;
     requires transitive org.apache.logging.log4j.plugins;
-    // Optional Despendencies
+    // Optional Dependencies
     requires static java.desktop;
     requires static java.management;
     requires static java.sql;
@@ -86,4 +84,5 @@ module org.apache.logging.log4j.core {
     provides org.apache.logging.log4j.core.util.ContextDataProvider with org.apache.logging.log4j.core.impl.ThreadContextDataProvider;
     provides org.apache.logging.log4j.spi.Provider with org.apache.logging.log4j.core.impl.Log4jProvider;
     provides org.apache.logging.log4j.plugins.processor.PluginService with org.apache.logging.log4j.core.plugins.Log4jPlugins;
+    provides org.apache.logging.log4j.plugins.di.model.PluginModule with org.apache.logging.log4j.core.plugins.Log4jModule;
 }
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/di/BeanManagerTest.java b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/spi/BeanManagerTest.java
similarity index 99%
rename from log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/di/BeanManagerTest.java
rename to log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/spi/BeanManagerTest.java
index 3f67266..6310ddd 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/di/BeanManagerTest.java
+++ b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/spi/BeanManagerTest.java
@@ -15,9 +15,8 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
-import org.apache.logging.log4j.core.config.di.impl.DefaultBeanManager;
 import org.apache.logging.log4j.plugins.di.Inject;
 import org.apache.logging.log4j.plugins.di.Named;
 import org.apache.logging.log4j.plugins.di.PostConstruct;
@@ -25,6 +24,7 @@ import org.apache.logging.log4j.plugins.di.PreDestroy;
 import org.apache.logging.log4j.plugins.di.Produces;
 import org.apache.logging.log4j.plugins.di.Provider;
 import org.apache.logging.log4j.plugins.di.SingletonScoped;
+import org.apache.logging.log4j.plugins.spi.impl.DefaultBeanManager;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
 
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/di/InjectionPointTest.java b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/spi/InjectionPointTest.java
similarity index 95%
rename from log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/di/InjectionPointTest.java
rename to log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/spi/InjectionPointTest.java
index 60e89e4..1b2d12f 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/di/InjectionPointTest.java
+++ b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/spi/InjectionPointTest.java
@@ -15,9 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
-import org.apache.logging.log4j.core.config.di.impl.DefaultBeanManager;
+import org.apache.logging.log4j.plugins.spi.BeanManager;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.impl.DefaultBeanManager;
 import org.apache.logging.log4j.plugins.di.Inject;
 import org.apache.logging.log4j.plugins.di.Named;
 import org.apache.logging.log4j.plugins.di.SingletonScoped;
@@ -133,4 +135,4 @@ class InjectionPointTest {
         final InjectionPoint injectionPoint = points.iterator().next();
         assertEquals(Strings.EMPTY, injectionPoint.getName());
     }
-}
\ No newline at end of file
+}
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/di/InjectionTargetTest.java b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/spi/InjectionTargetTest.java
similarity index 90%
rename from log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/di/InjectionTargetTest.java
rename to log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/spi/InjectionTargetTest.java
index c06d2ad..7b39145 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/di/InjectionTargetTest.java
+++ b/log4j-plugins-test/src/test/java/org/apache/logging/log4j/plugins/spi/InjectionTargetTest.java
@@ -15,21 +15,18 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
-import org.apache.logging.log4j.core.config.di.impl.DefaultBeanManager;
 import org.apache.logging.log4j.plugins.di.Inject;
 import org.apache.logging.log4j.plugins.di.Named;
 import org.apache.logging.log4j.plugins.di.Produces;
 import org.apache.logging.log4j.plugins.di.SingletonScoped;
+import org.apache.logging.log4j.plugins.spi.impl.DefaultBeanManager;
 import org.junit.jupiter.api.Test;
 
 import java.util.Optional;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
 
 class InjectionTargetTest {
 
@@ -106,4 +103,4 @@ class InjectionTargetTest {
             assertNotSame(beans.first, beans.second);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/log4j-plugins/src/main/java/module-info.java b/log4j-plugins/src/main/java/module-info.java
index d6150e1..5926824 100644
--- a/log4j-plugins/src/main/java/module-info.java
+++ b/log4j-plugins/src/main/java/module-info.java
@@ -19,6 +19,7 @@ module org.apache.logging.log4j.plugins {
     exports org.apache.logging.log4j.plugins.convert;
     exports org.apache.logging.log4j.plugins.di;
     exports org.apache.logging.log4j.plugins.di.model;
+    exports org.apache.logging.log4j.plugins.spi;
     exports org.apache.logging.log4j.plugins.processor;
     exports org.apache.logging.log4j.plugins.util;
     exports org.apache.logging.log4j.plugins.validation;
@@ -32,6 +33,7 @@ module org.apache.logging.log4j.plugins {
     requires static org.osgi.framework;
 
     uses org.apache.logging.log4j.plugins.processor.PluginService;
+    uses org.apache.logging.log4j.plugins.di.model.PluginModule;
     provides org.apache.logging.log4j.plugins.processor.PluginService with org.apache.logging.log4j.plugins.convert.plugins.Log4jPlugins;
 
 }
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/AmbiguousBeanException.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/AmbiguousBeanException.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/AmbiguousBeanException.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/AmbiguousBeanException.java
index 919a6e6..5d830fa 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/AmbiguousBeanException.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/AmbiguousBeanException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import java.util.Collection;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/Bean.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/Bean.java
similarity index 98%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/Bean.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/Bean.java
index 37c8795..550e780 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/Bean.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/Bean.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import org.apache.logging.log4j.plugins.di.DependentScoped;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/BeanManager.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/BeanManager.java
similarity index 99%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/BeanManager.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/BeanManager.java
index 3168e1b..05b8f13 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/BeanManager.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/BeanManager.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import org.apache.logging.log4j.plugins.di.Inject;
 import org.apache.logging.log4j.plugins.di.Producer;
@@ -39,6 +39,7 @@ import java.util.Optional;
 /**
  * Central SPI for injecting and managing beans and their instances.
  */
+// TODO: move this whole API to log4j-plugins
 public interface BeanManager extends AutoCloseable {
 
     /**
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/DefinitionException.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/DefinitionException.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/DefinitionException.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/DefinitionException.java
index 38b50ac..3376a92 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/DefinitionException.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/DefinitionException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 public class DefinitionException extends InjectionException {
     public DefinitionException(final String message) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/IllegalProductException.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/IllegalProductException.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/IllegalProductException.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/IllegalProductException.java
index b054754..5a12068 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/IllegalProductException.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/IllegalProductException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 public class IllegalProductException extends InjectionException {
     public IllegalProductException(final String message) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InitializationContext.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InitializationContext.java
similarity index 97%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InitializationContext.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InitializationContext.java
index a2dded6..ff1c785 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InitializationContext.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InitializationContext.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import java.util.Optional;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InitializationException.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InitializationException.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InitializationException.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InitializationException.java
index 77aa66c..d547f8d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InitializationException.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InitializationException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 public class InitializationException extends InjectionException {
     public InitializationException(final String message, final Throwable cause) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionException.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionException.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionException.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionException.java
index c61f48d..1b7475f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionException.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 public class InjectionException extends RuntimeException {
     protected InjectionException(final String message) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionPoint.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionPoint.java
similarity index 97%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionPoint.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionPoint.java
index c76390c..0b25cef 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionPoint.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionPoint.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import java.lang.reflect.AnnotatedElement;
 import java.lang.reflect.Member;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionTarget.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionTarget.java
similarity index 98%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionTarget.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionTarget.java
index ec4463a..9066b29 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionTarget.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionTarget.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import org.apache.logging.log4j.plugins.di.Inject;
 import org.apache.logging.log4j.plugins.di.PostConstruct;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionTargetFactory.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionTargetFactory.java
similarity index 94%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionTargetFactory.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionTargetFactory.java
index 3b3d809..fbd12cf 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionTargetFactory.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionTargetFactory.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 public interface InjectionTargetFactory<T> {
     InjectionTarget<T> createInjectionTarget(final Bean<T> bean);
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/LoggerContextScoped.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/LoggerContextScoped.java
similarity index 96%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/LoggerContextScoped.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/LoggerContextScoped.java
index a601364..b93cf7e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/LoggerContextScoped.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/LoggerContextScoped.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import org.apache.logging.log4j.plugins.di.ScopeType;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/Producer.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/Producer.java
similarity index 98%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/Producer.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/Producer.java
index a65cc90..879df74 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/Producer.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/Producer.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import org.apache.logging.log4j.plugins.di.Disposes;
 import org.apache.logging.log4j.plugins.di.Inject;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ProducerFactory.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ProducerFactory.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ProducerFactory.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ProducerFactory.java
index 2fe22a9..e31d478 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ProducerFactory.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ProducerFactory.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 public interface ProducerFactory {
     // only time bean is null is static @Produces potentially?
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ResolutionException.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ResolutionException.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ResolutionException.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ResolutionException.java
index b52c0a4..1158d23 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ResolutionException.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ResolutionException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 public class ResolutionException extends InjectionException {
     public ResolutionException(final String message) {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ScopeContext.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ScopeContext.java
similarity index 97%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ScopeContext.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ScopeContext.java
index b56353f..40c66da 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ScopeContext.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ScopeContext.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import org.apache.logging.log4j.plugins.di.ScopeType;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/UnsatisfiedBeanException.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/UnsatisfiedBeanException.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/UnsatisfiedBeanException.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/UnsatisfiedBeanException.java
index e792e3d..3f12fa7 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/UnsatisfiedBeanException.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/UnsatisfiedBeanException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import java.lang.reflect.Type;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ValidationException.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ValidationException.java
similarity index 96%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ValidationException.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ValidationException.java
index 74bdb6c..29321d1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ValidationException.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ValidationException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di;
+package org.apache.logging.log4j.plugins.spi;
 
 import java.util.Collection;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/AbstractBean.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/AbstractBean.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/AbstractBean.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/AbstractBean.java
index 87e496d..f8fed3c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/AbstractBean.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/AbstractBean.java
@@ -15,9 +15,9 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
+import org.apache.logging.log4j.plugins.spi.Bean;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/AbstractProducer.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/AbstractProducer.java
similarity index 88%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/AbstractProducer.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/AbstractProducer.java
index 06d09c1..320dd5e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/AbstractProducer.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/AbstractProducer.java
@@ -15,13 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.BeanManager;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
-import org.apache.logging.log4j.core.config.di.Producer;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.BeanManager;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Producer;
 
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/AbstractProducerFactory.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/AbstractProducerFactory.java
similarity index 87%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/AbstractProducerFactory.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/AbstractProducerFactory.java
index 6d0afa9..8ac279c 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/AbstractProducerFactory.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/AbstractProducerFactory.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
-import org.apache.logging.log4j.core.config.di.ProducerFactory;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.ProducerFactory;
 
 import java.lang.reflect.Member;
 import java.lang.reflect.Method;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultBeanManager.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultBeanManager.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultBeanManager.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultBeanManager.java
index 5e13e18..78b9439 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultBeanManager.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultBeanManager.java
@@ -15,21 +15,21 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
-
-import org.apache.logging.log4j.core.config.di.AmbiguousBeanException;
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.BeanManager;
-import org.apache.logging.log4j.core.config.di.DefinitionException;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InjectionException;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
-import org.apache.logging.log4j.core.config.di.InjectionTargetFactory;
-import org.apache.logging.log4j.core.config.di.ProducerFactory;
-import org.apache.logging.log4j.core.config.di.ResolutionException;
-import org.apache.logging.log4j.core.config.di.ScopeContext;
-import org.apache.logging.log4j.core.config.di.UnsatisfiedBeanException;
-import org.apache.logging.log4j.core.config.di.ValidationException;
+package org.apache.logging.log4j.plugins.spi.impl;
+
+import org.apache.logging.log4j.plugins.spi.AmbiguousBeanException;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.BeanManager;
+import org.apache.logging.log4j.plugins.spi.DefinitionException;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InjectionException;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.InjectionTargetFactory;
+import org.apache.logging.log4j.plugins.spi.ProducerFactory;
+import org.apache.logging.log4j.plugins.spi.ResolutionException;
+import org.apache.logging.log4j.plugins.spi.ScopeContext;
+import org.apache.logging.log4j.plugins.spi.UnsatisfiedBeanException;
+import org.apache.logging.log4j.plugins.spi.ValidationException;
 import org.apache.logging.log4j.plugins.di.DependentScoped;
 import org.apache.logging.log4j.plugins.di.Disposes;
 import org.apache.logging.log4j.plugins.di.Producer;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInitializationContext.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInitializationContext.java
similarity index 96%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInitializationContext.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInitializationContext.java
index 3d61bea..9130140 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInitializationContext.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInitializationContext.java
@@ -15,10 +15,10 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 import org.apache.logging.log4j.plugins.util.Value;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInjectionPoint.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInjectionPoint.java
similarity index 95%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInjectionPoint.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInjectionPoint.java
index 3404e29..bfe75b3 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInjectionPoint.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInjectionPoint.java
@@ -15,10 +15,10 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
 import org.apache.logging.log4j.plugins.name.AnnotatedElementAliasesProvider;
 import org.apache.logging.log4j.plugins.name.AnnotatedElementNameProvider;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInjectionTarget.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInjectionTarget.java
similarity index 94%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInjectionTarget.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInjectionTarget.java
index 46eaad9..bf097ad 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInjectionTarget.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInjectionTarget.java
@@ -15,12 +15,12 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InitializationException;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
-import org.apache.logging.log4j.core.config.di.InjectionTarget;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InitializationException;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.InjectionTarget;
 import org.apache.logging.log4j.plugins.di.Disposes;
 import org.apache.logging.log4j.plugins.di.Inject;
 import org.apache.logging.log4j.plugins.di.Producer;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInjectionTargetFactory.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInjectionTargetFactory.java
similarity index 94%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInjectionTargetFactory.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInjectionTargetFactory.java
index d3ed010..5da29be 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultInjectionTargetFactory.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultInjectionTargetFactory.java
@@ -15,14 +15,14 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.BeanManager;
-import org.apache.logging.log4j.core.config.di.DefinitionException;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
-import org.apache.logging.log4j.core.config.di.InjectionTarget;
-import org.apache.logging.log4j.core.config.di.InjectionTargetFactory;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.BeanManager;
+import org.apache.logging.log4j.plugins.spi.DefinitionException;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.InjectionTarget;
+import org.apache.logging.log4j.plugins.spi.InjectionTargetFactory;
 import org.apache.logging.log4j.plugins.di.Inject;
 import org.apache.logging.log4j.plugins.di.PostConstruct;
 import org.apache.logging.log4j.plugins.di.PreDestroy;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultScopeContext.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultScopeContext.java
similarity index 91%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultScopeContext.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultScopeContext.java
index f8ca9e6..dc86b6e 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DefaultScopeContext.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DefaultScopeContext.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.ScopeContext;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.ScopeContext;
 import org.apache.logging.log4j.plugins.util.LazyValue;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 import org.apache.logging.log4j.plugins.util.Value;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DependentScopeContext.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DependentScopeContext.java
similarity index 87%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DependentScopeContext.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DependentScopeContext.java
index c125c9c..70cec5d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/DependentScopeContext.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/DependentScopeContext.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.ScopeContext;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.ScopeContext;
 import org.apache.logging.log4j.plugins.di.DependentScoped;
 
 import java.lang.annotation.Annotation;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/FieldProducer.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/FieldProducer.java
similarity index 88%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/FieldProducer.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/FieldProducer.java
index 40fda2c..7be73e5 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/FieldProducer.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/FieldProducer.java
@@ -15,12 +15,12 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.BeanManager;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.BeanManager;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
 import java.lang.reflect.Field;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/FieldProducerFactory.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/FieldProducerFactory.java
similarity index 85%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/FieldProducerFactory.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/FieldProducerFactory.java
index 06abe54..e5ea704 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/FieldProducerFactory.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/FieldProducerFactory.java
@@ -15,12 +15,12 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.BeanManager;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
-import org.apache.logging.log4j.core.config.di.Producer;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.BeanManager;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Producer;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/InjectionTargetBean.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/InjectionTargetBean.java
similarity index 88%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/InjectionTargetBean.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/InjectionTargetBean.java
index 0a7a63c..c64aa32 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/InjectionTargetBean.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/InjectionTargetBean.java
@@ -15,13 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.IllegalProductException;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
-import org.apache.logging.log4j.core.config.di.InjectionTarget;
-import org.apache.logging.log4j.core.config.di.InjectionTargetFactory;
+import org.apache.logging.log4j.plugins.spi.IllegalProductException;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.InjectionTarget;
+import org.apache.logging.log4j.plugins.spi.InjectionTargetFactory;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/Injector.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/Injector.java
similarity index 79%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/Injector.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/Injector.java
index eff10f4..f0d964f 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/Injector.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/Injector.java
@@ -15,12 +15,12 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.BeanManager;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InitializationException;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.BeanManager;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InitializationException;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
 import org.apache.logging.log4j.plugins.di.Disposes;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
@@ -32,14 +32,14 @@ import java.lang.reflect.Parameter;
 import java.util.Collection;
 import java.util.Optional;
 
-public class Injector {
+class Injector {
     private final BeanManager beanManager;
 
-    public Injector(final BeanManager beanManager) {
+    Injector(final BeanManager beanManager) {
         this.beanManager = beanManager;
     }
 
-    public <T> T construct(final Constructor<T> constructor, final Collection<InjectionPoint> points, final InitializationContext<T> context) {
+    <T> T construct(final Constructor<T> constructor, final Collection<InjectionPoint> points, final InitializationContext<T> context) {
         try {
             return constructor.newInstance(createArguments(constructor.getParameters(), points, context, null));
         } catch (final IllegalAccessException | InstantiationException e) {
@@ -49,7 +49,7 @@ public class Injector {
         }
     }
 
-    public <D, T> T produce(final D producerInstance, final Method producerMethod, final Collection<InjectionPoint> points, final InitializationContext<D> context) {
+    <D, T> T produce(final D producerInstance, final Method producerMethod, final Collection<InjectionPoint> points, final InitializationContext<D> context) {
         try {
             return TypeUtil.cast(producerMethod.invoke(producerInstance, createArguments(producerMethod.getParameters(), points, context, null)));
         } catch (IllegalAccessException e) {
@@ -59,7 +59,7 @@ public class Injector {
         }
     }
 
-    public <T> void dispose(final T disposerInstance, final Method disposerMethod, final Collection<InjectionPoint> points, final Object instance, final InitializationContext<T> context) {
+    <T> void dispose(final T disposerInstance, final Method disposerMethod, final Collection<InjectionPoint> points, final Object instance, final InitializationContext<T> context) {
         try {
             disposerMethod.invoke(disposerInstance, createArguments(disposerMethod.getParameters(), points, context, instance));
         } catch (IllegalAccessException e) {
@@ -69,7 +69,7 @@ public class Injector {
         }
     }
 
-    public <T> void invoke(final T instance, final Method method, final Collection<InjectionPoint> points, final InitializationContext<T> context) {
+    <T> void invoke(final T instance, final Method method, final Collection<InjectionPoint> points, final InitializationContext<T> context) {
         try {
             method.invoke(instance, createArguments(method.getParameters(), points, context, null));
         } catch (IllegalAccessException e) {
@@ -79,7 +79,7 @@ public class Injector {
         }
     }
 
-    public <D, T> void set(final D instance, final Field field, final InjectionPoint point, final InitializationContext<D> context) {
+    <D, T> void set(final D instance, final Field field, final InjectionPoint point, final InitializationContext<D> context) {
         final Optional<T> optionalValue = beanManager.getInjectableValue(point, context);
         optionalValue.ifPresent(value -> {
             try {
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/MethodProducer.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/MethodProducer.java
similarity index 86%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/MethodProducer.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/MethodProducer.java
index 676e50e..f9e1515 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/MethodProducer.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/MethodProducer.java
@@ -15,13 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.BeanManager;
-import org.apache.logging.log4j.core.config.di.DefinitionException;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.BeanManager;
+import org.apache.logging.log4j.plugins.spi.DefinitionException;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
 
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/MethodProducerFactory.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/MethodProducerFactory.java
similarity index 87%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/MethodProducerFactory.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/MethodProducerFactory.java
index 4556b3c..bafe7dd 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/MethodProducerFactory.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/MethodProducerFactory.java
@@ -15,12 +15,12 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.BeanManager;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
-import org.apache.logging.log4j.core.config.di.Producer;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.BeanManager;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Producer;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
 import java.lang.reflect.Method;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/OptionalBean.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/OptionalBean.java
similarity index 92%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/OptionalBean.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/OptionalBean.java
index c161e7c..96e5343 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/OptionalBean.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/OptionalBean.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
 import org.apache.logging.log4j.plugins.di.DependentScoped;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 import org.apache.logging.log4j.plugins.util.Value;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/ProducerBean.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/ProducerBean.java
similarity index 88%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/ProducerBean.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/ProducerBean.java
index 2e19977..e617133 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/ProducerBean.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/ProducerBean.java
@@ -15,13 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.IllegalProductException;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
-import org.apache.logging.log4j.core.config.di.Producer;
-import org.apache.logging.log4j.core.config.di.ProducerFactory;
+import org.apache.logging.log4j.plugins.spi.IllegalProductException;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Producer;
+import org.apache.logging.log4j.plugins.spi.ProducerFactory;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/ProvidedBean.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/ProvidedBean.java
similarity index 90%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/ProvidedBean.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/ProvidedBean.java
index 393ce42..123e226 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/ProvidedBean.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/ProvidedBean.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
 import org.apache.logging.log4j.plugins.di.Provider;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/ProviderBean.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/ProviderBean.java
similarity index 90%
rename from log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/ProviderBean.java
rename to log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/ProviderBean.java
index 138b9f9..3ba47e2 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/ProviderBean.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/impl/ProviderBean.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.core.config.di.impl;
+package org.apache.logging.log4j.plugins.spi.impl;
 
-import org.apache.logging.log4j.core.config.di.Bean;
-import org.apache.logging.log4j.core.config.di.InitializationContext;
-import org.apache.logging.log4j.core.config.di.InjectionPoint;
+import org.apache.logging.log4j.plugins.spi.Bean;
+import org.apache.logging.log4j.plugins.spi.InitializationContext;
+import org.apache.logging.log4j.plugins.spi.InjectionPoint;
 import org.apache.logging.log4j.plugins.di.Provider;
 import org.apache.logging.log4j.plugins.util.TypeUtil;