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

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

commit c83c9a1cc810a46e7ab896489806e41f034e37c5
Author: Matt Sicker <[email protected]>
AuthorDate: Sun Jun 6 17:47:18 2021 -0500

    Move DI SPI to log4j-core
---
 .../core/config/di}/AmbiguousBeanException.java    |  4 +-
 .../log4j/core/config/di}/DefinitionException.java |  2 +-
 .../core/config/di}/IllegalProductException.java   |  2 +-
 .../core/config/di}/InitializationException.java   |  2 +-
 .../log4j/core/config/di}/InjectionException.java  |  2 +-
 .../log4j/core/config/di}/ResolutionException.java |  2 +-
 .../core/config/di}/UnsatisfiedBeanException.java  |  4 +-
 .../log4j/core/config/di}/ValidationException.java |  2 +-
 .../log4j/core/config/di/api}/bean/Bean.java       |  8 ++--
 .../core/config/di/api}/bean/BeanManager.java      | 14 +++---
 .../config/di/api}/bean/InitializationContext.java |  2 +-
 .../core/config/di/api}/bean/InjectionTarget.java  |  2 +-
 .../di/api}/bean/InjectionTargetFactory.java       |  2 +-
 .../log4j/core/config/di/api}/bean/Injector.java   | 10 ++---
 .../log4j/core/config/di/api}/bean/Producer.java   |  4 +-
 .../core/config/di/api}/bean/ProducerFactory.java  |  2 +-
 .../core/config/di/api}/bean/ProviderFactory.java  |  2 +-
 .../core/config/di/api}/bean/ScopeContext.java     |  2 +-
 .../core/config/di/api}/model/ElementManager.java  |  4 +-
 .../core/config/di/api}/model/InjectionPoint.java  |  4 +-
 .../core/config/di/api}/model/MetaAnnotation.java  |  2 +-
 .../di/api}/model/MetaAnnotationElement.java       |  2 +-
 .../log4j/core/config/di/api}/model/MetaClass.java |  2 +-
 .../core/config/di/api}/model/MetaConstructor.java |  2 +-
 .../core/config/di/api}/model/MetaElement.java     |  2 +-
 .../core/config/di/api}/model/MetaExecutable.java  |  2 +-
 .../log4j/core/config/di/api}/model/MetaField.java |  2 +-
 .../core/config/di/api}/model/MetaMember.java      |  2 +-
 .../core/config/di/api}/model/MetaMethod.java      |  2 +-
 .../core/config/di/api}/model/MetaParameter.java   |  2 +-
 .../core/config/di/api}/model/Qualifiers.java      |  2 +-
 .../log4j/core/config/di/api}/model/Variable.java  |  2 +-
 .../core/config/di/impl}/bean/AbstractBean.java    | 10 ++---
 .../config/di/impl}/bean/AbstractProducer.java     | 16 +++----
 .../di/impl}/bean/AbstractProducerFactory.java     | 12 ++---
 .../config/di/impl}/bean/DefaultBeanManager.java   | 52 +++++++++++-----------
 .../impl}/bean/DefaultInitializationContext.java   |  6 +--
 .../di/impl}/bean/DefaultInjectionTarget.java      | 20 ++++-----
 .../impl}/bean/DefaultInjectionTargetFactory.java  | 24 +++++-----
 .../core/config/di/impl}/bean/DefaultInjector.java | 18 ++++----
 .../config/di/impl}/bean/DefaultScopeContext.java  |  8 ++--
 .../di/impl}/bean/DependentScopeContext.java       |  8 ++--
 .../core/config/di/impl}/bean/FieldProducer.java   | 16 +++----
 .../config/di/impl}/bean/FieldProducerFactory.java | 14 +++---
 .../config/di/impl}/bean/InjectionTargetBean.java  | 16 +++----
 .../core/config/di/impl}/bean/MethodProducer.java  | 16 +++----
 .../di/impl}/bean/MethodProducerFactory.java       | 12 ++---
 .../core/config/di/impl}/bean/OptionalBean.java    | 12 ++---
 .../core/config/di/impl}/bean/ProducerBean.java    | 16 +++----
 .../core/config/di/impl}/bean/ProvidedBean.java    |  8 ++--
 .../core/config/di/impl}/bean/ProviderBean.java    |  8 ++--
 .../core/config/di/impl}/bean/SystemBean.java      | 14 +++---
 .../di/impl}/model/AbstractMetaExecutable.java     |  8 ++--
 .../config/di/impl}/model/AbstractMetaMember.java  |  8 ++--
 .../di/impl}/model/DefaultElementManager.java      | 28 ++++++------
 .../di/impl}/model/DefaultInjectionPoint.java      | 12 ++---
 .../di/impl}/model/DefaultMetaAnnotation.java      |  8 ++--
 .../impl}/model/DefaultMetaAnnotationElement.java  |  6 +--
 .../config/di/impl}/model/DefaultMetaClass.java    | 12 ++---
 .../di/impl}/model/DefaultMetaConstructor.java     |  8 ++--
 .../config/di/impl}/model/DefaultMetaField.java    |  8 ++--
 .../config/di/impl}/model/DefaultMetaMethod.java   |  8 ++--
 .../di/impl}/model/DefaultMetaParameter.java       |  8 ++--
 .../config/di/impl}/model/DefaultVariable.java     |  6 +--
 log4j-core/src/main/java9/module-info.java         |  5 +++
 .../log4j/core/test/junit}/BeanJUnit4Runner.java   | 30 ++++++-------
 .../logging/log4j/core/test/junit}/WithBeans.java  |  2 +-
 .../di/impl}/bean/DefaultBeanManagerTest.java      |  6 +--
 log4j-core/src/test/java9/module-info.java         |  1 +
 69 files changed, 289 insertions(+), 281 deletions(-)

diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/AmbiguousBeanException.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/AmbiguousBeanException.java
similarity index 90%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/AmbiguousBeanException.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/AmbiguousBeanException.java
index 1342920..55cab85 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/AmbiguousBeanException.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/AmbiguousBeanException.java
@@ -15,9 +15,9 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi;
+package org.apache.logging.log4j.core.config.di;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
 
 import java.util.Collection;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/DefinitionException.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/DefinitionException.java
similarity index 95%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/DefinitionException.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/DefinitionException.java
index 3376a92..38b50ac 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/DefinitionException.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/DefinitionException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi;
+package org.apache.logging.log4j.core.config.di;
 
 public class DefinitionException extends InjectionException {
     public DefinitionException(final String message) {
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/IllegalProductException.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/IllegalProductException.java
similarity index 95%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/IllegalProductException.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/IllegalProductException.java
index 5a12068..b054754 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/IllegalProductException.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/IllegalProductException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi;
+package org.apache.logging.log4j.core.config.di;
 
 public class IllegalProductException extends InjectionException {
     public IllegalProductException(final String message) {
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InitializationException.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InitializationException.java
similarity index 95%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InitializationException.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InitializationException.java
index d547f8d..77aa66c 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InitializationException.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InitializationException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi;
+package org.apache.logging.log4j.core.config.di;
 
 public class InitializationException extends InjectionException {
     public InitializationException(final String message, final Throwable 
cause) {
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionException.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionException.java
similarity index 95%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionException.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionException.java
index 1b7475f..c61f48d 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/InjectionException.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/InjectionException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi;
+package org.apache.logging.log4j.core.config.di;
 
 public class InjectionException extends RuntimeException {
     protected InjectionException(final String message) {
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ResolutionException.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ResolutionException.java
similarity index 95%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ResolutionException.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ResolutionException.java
index 1158d23..b52c0a4 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ResolutionException.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ResolutionException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi;
+package org.apache.logging.log4j.core.config.di;
 
 public class ResolutionException extends InjectionException {
     public ResolutionException(final String message) {
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/UnsatisfiedBeanException.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/UnsatisfiedBeanException.java
similarity index 90%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/UnsatisfiedBeanException.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/UnsatisfiedBeanException.java
index 2fc2dff..12f6ab3 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/UnsatisfiedBeanException.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/UnsatisfiedBeanException.java
@@ -15,9 +15,9 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi;
+package org.apache.logging.log4j.core.config.di;
 
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
 
 import java.lang.reflect.Type;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ValidationException.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ValidationException.java
similarity index 95%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ValidationException.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ValidationException.java
index 1498d1f..d0fe1a0 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/ValidationException.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/ValidationException.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi;
+package org.apache.logging.log4j.core.config.di;
 
 import java.util.List;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/Bean.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/Bean.java
similarity index 87%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/Bean.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/Bean.java
index 4950ac8..b942e1c 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/Bean.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/Bean.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
 
 import java.util.Collection;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/BeanManager.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/BeanManager.java
similarity index 87%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/BeanManager.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/BeanManager.java
index 47731ae..c448a1d 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/BeanManager.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/BeanManager.java
@@ -15,11 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
-import org.apache.logging.log4j.plugins.spi.ValidationException;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.DefinitionException;
+import org.apache.logging.log4j.core.config.di.UnsatisfiedBeanException;
+import org.apache.logging.log4j.core.config.di.ValidationException;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.Qualifiers;
 
 import java.lang.reflect.Type;
 import java.util.Arrays;
@@ -64,8 +66,8 @@ public interface BeanManager extends AutoCloseable {
      * Validates the given injection point.
      *
      * @param point injection point to validate
-     * @throws org.apache.logging.log4j.plugins.spi.DefinitionException      
if the injection point is improperly defined
-     * @throws org.apache.logging.log4j.plugins.spi.UnsatisfiedBeanException 
if no beans can satisfy the injection point
+     * @throws DefinitionException      if the injection point is improperly 
defined
+     * @throws UnsatisfiedBeanException if no beans can satisfy the injection 
point
      */
     void validateInjectionPoint(InjectionPoint point);
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/InitializationContext.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/InitializationContext.java
similarity index 97%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/InitializationContext.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/InitializationContext.java
index aae4dda..d1bc90e 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/InitializationContext.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/InitializationContext.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
 import java.util.Optional;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/InjectionTarget.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/InjectionTarget.java
similarity index 95%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/InjectionTarget.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/InjectionTarget.java
index 409d1d3..7faae9a 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/InjectionTarget.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/InjectionTarget.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
 public interface InjectionTarget<T> extends Producer<T> {
     // sets values of injected fields and calls initializer methods
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/InjectionTargetFactory.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/InjectionTargetFactory.java
similarity index 94%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/InjectionTargetFactory.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/InjectionTargetFactory.java
index d5ee0df..512773a 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/InjectionTargetFactory.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/InjectionTargetFactory.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
 public interface InjectionTargetFactory<T> {
     InjectionTarget<T> createInjectionTarget(final Bean<T> bean);
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/Injector.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/Injector.java
similarity index 83%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/Injector.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/Injector.java
index e803790..c56eb68 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/Injector.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/Injector.java
@@ -15,12 +15,12 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaConstructor;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaConstructor;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 
 import java.util.Collection;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/Producer.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/Producer.java
similarity index 91%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/Producer.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/Producer.java
index b598f46..cc0ca49 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/Producer.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/Producer.java
@@ -15,9 +15,9 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
 
 import java.util.Collection;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/ProducerFactory.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/ProducerFactory.java
similarity index 94%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/ProducerFactory.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/ProducerFactory.java
index 29e0684..2051102 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/ProducerFactory.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/ProducerFactory.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
 public interface ProducerFactory {
     // only time bean is null is static @Produces potentially?
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/ProviderFactory.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/ProviderFactory.java
similarity index 94%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/ProviderFactory.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/ProviderFactory.java
index 487ffe7..11bc2f4 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/ProviderFactory.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/ProviderFactory.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
 import org.apache.logging.log4j.plugins.api.Provider;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/ScopeContext.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/ScopeContext.java
similarity index 97%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/ScopeContext.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/ScopeContext.java
index ac154ae..4e12f4f 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/bean/ScopeContext.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/bean/ScopeContext.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.bean;
+package org.apache.logging.log4j.core.config.di.api.bean;
 
 import org.apache.logging.log4j.plugins.api.ScopeType;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/ElementManager.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/ElementManager.java
similarity index 98%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/ElementManager.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/ElementManager.java
index 5c98901..5744396 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/ElementManager.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/ElementManager.java
@@ -15,14 +15,14 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 import org.apache.logging.log4j.plugins.api.Default;
 import org.apache.logging.log4j.plugins.api.Inject;
 import org.apache.logging.log4j.plugins.api.Named;
 import org.apache.logging.log4j.plugins.api.Produces;
 import org.apache.logging.log4j.plugins.api.QualifierType;
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
 
 import java.lang.annotation.Annotation;
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/InjectionPoint.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/InjectionPoint.java
similarity index 93%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/InjectionPoint.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/InjectionPoint.java
index 05e09db..fa2d2f7 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/InjectionPoint.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/InjectionPoint.java
@@ -15,9 +15,9 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
 
 import java.lang.reflect.Type;
 import java.util.Optional;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaAnnotation.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaAnnotation.java
similarity index 94%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaAnnotation.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaAnnotation.java
index 0038f7d..a2627ed 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaAnnotation.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaAnnotation.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 import java.lang.annotation.Annotation;
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaAnnotationElement.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaAnnotationElement.java
similarity index 94%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaAnnotationElement.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaAnnotationElement.java
index 460d6b8..7d7af1e 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaAnnotationElement.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaAnnotationElement.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 public interface MetaAnnotationElement<T> extends MetaElement {
     T getValue();
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaClass.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaClass.java
similarity index 96%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaClass.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaClass.java
index 7d3b4d9..0ed3261 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaClass.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaClass.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaConstructor.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaConstructor.java
similarity index 93%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaConstructor.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaConstructor.java
index 4402259..f49ef3e 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaConstructor.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaConstructor.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 public interface MetaConstructor<T> extends MetaExecutable<T> {
     T construct(final Object... args);
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaElement.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaElement.java
similarity index 97%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaElement.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaElement.java
index 4ebe48c..6d2e726 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaElement.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaElement.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 import org.apache.logging.log4j.plugins.api.AnnotationAlias;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaExecutable.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaExecutable.java
similarity index 94%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaExecutable.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaExecutable.java
index 049cf21..650ffb6 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaExecutable.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaExecutable.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 import java.util.List;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaField.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaField.java
similarity index 94%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaField.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaField.java
index a406a96..905d34a 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaField.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaField.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 public interface MetaField<D, T> extends MetaMember<D> {
     T get(final D target);
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaMember.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaMember.java
similarity index 93%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaMember.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaMember.java
index 4fc34a4..2170c81 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaMember.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaMember.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 public interface MetaMember<D> extends MetaElement {
     MetaClass<D> getDeclaringClass();
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaMethod.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaMethod.java
similarity index 93%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaMethod.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaMethod.java
index 7e79f89..c0c3c88 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaMethod.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaMethod.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 public interface MetaMethod<D, T> extends MetaExecutable<D> {
     T invoke(final D target, final Object... args);
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaParameter.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaParameter.java
similarity index 93%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaParameter.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaParameter.java
index 9ceaef0..7ad8223 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/MetaParameter.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/MetaParameter.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 public interface MetaParameter extends MetaElement {
 }
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Qualifiers.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/Qualifiers.java
similarity index 98%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Qualifiers.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/Qualifiers.java
index 4a3674c..8010540 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Qualifiers.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/Qualifiers.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 import org.apache.logging.log4j.plugins.api.Default;
 import org.apache.logging.log4j.util.StringBuilders;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Variable.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/Variable.java
similarity index 96%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Variable.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/Variable.java
index 789c886..40eb33a 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/spi/model/Variable.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/api/model/Variable.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.spi.model;
+package org.apache.logging.log4j.core.config.di.api.model;
 
 import org.apache.logging.log4j.plugins.api.DependentScoped;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/AbstractBean.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/AbstractBean.java
similarity index 86%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/AbstractBean.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/AbstractBean.java
index 74f75c7..57554ed 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/AbstractBean.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/AbstractBean.java
@@ -15,12 +15,12 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.Qualifiers;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/AbstractProducer.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/AbstractProducer.java
similarity index 83%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/AbstractProducer.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/AbstractProducer.java
index df73dc6..03fe913 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/AbstractProducer.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/AbstractProducer.java
@@ -15,15 +15,15 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.BeanManager;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.Injector;
-import org.apache.logging.log4j.plugins.spi.bean.Producer;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.BeanManager;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.Injector;
+import org.apache.logging.log4j.core.config.di.api.bean.Producer;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 
 import java.lang.reflect.Type;
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/AbstractProducerFactory.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/AbstractProducerFactory.java
similarity index 79%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/AbstractProducerFactory.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/AbstractProducerFactory.java
index 2ded1aa..f993c42 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/AbstractProducerFactory.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/AbstractProducerFactory.java
@@ -15,13 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.ProducerFactory;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaMember;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.ProducerFactory;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMember;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 
 import java.util.Collection;
 import java.util.Objects;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManager.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultBeanManager.java
similarity index 91%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManager.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultBeanManager.java
index 166ddbd..d75ea9d 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManager.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultBeanManager.java
@@ -15,37 +15,37 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
-
+package org.apache.logging.log4j.core.config.di.impl.bean;
+
+import org.apache.logging.log4j.core.config.di.AmbiguousBeanException;
+import org.apache.logging.log4j.core.config.di.DefinitionException;
+import org.apache.logging.log4j.core.config.di.InjectionException;
+import org.apache.logging.log4j.core.config.di.ResolutionException;
+import org.apache.logging.log4j.core.config.di.UnsatisfiedBeanException;
+import org.apache.logging.log4j.core.config.di.ValidationException;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.BeanManager;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.InjectionTargetFactory;
+import org.apache.logging.log4j.core.config.di.api.bean.Injector;
+import org.apache.logging.log4j.core.config.di.api.bean.ProducerFactory;
+import org.apache.logging.log4j.core.config.di.api.bean.ScopeContext;
+import org.apache.logging.log4j.core.config.di.api.model.ElementManager;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaElement;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMember;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.model.MetaParameter;
+import org.apache.logging.log4j.core.config.di.api.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
+import 
org.apache.logging.log4j.core.config.di.impl.model.DefaultElementManager;
 import org.apache.logging.log4j.plugins.api.DependentScoped;
 import org.apache.logging.log4j.plugins.api.Disposes;
 import org.apache.logging.log4j.plugins.api.Produces;
 import org.apache.logging.log4j.plugins.api.Provider;
 import org.apache.logging.log4j.plugins.api.SingletonScoped;
-import org.apache.logging.log4j.plugins.defaults.model.DefaultElementManager;
-import org.apache.logging.log4j.plugins.spi.AmbiguousBeanException;
-import org.apache.logging.log4j.plugins.spi.DefinitionException;
-import org.apache.logging.log4j.plugins.spi.InjectionException;
-import org.apache.logging.log4j.plugins.spi.ResolutionException;
-import org.apache.logging.log4j.plugins.spi.UnsatisfiedBeanException;
-import org.apache.logging.log4j.plugins.spi.ValidationException;
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.BeanManager;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.InjectionTargetFactory;
-import org.apache.logging.log4j.plugins.spi.bean.Injector;
-import org.apache.logging.log4j.plugins.spi.bean.ProducerFactory;
-import org.apache.logging.log4j.plugins.spi.bean.ScopeContext;
-import org.apache.logging.log4j.plugins.spi.model.ElementManager;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaElement;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
-import org.apache.logging.log4j.plugins.spi.model.MetaMember;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
-import org.apache.logging.log4j.plugins.spi.model.MetaParameter;
-import org.apache.logging.log4j.plugins.spi.model.Qualifiers;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
 import org.apache.logging.log4j.plugins.util.LazyValue;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInitializationContext.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInitializationContext.java
similarity index 96%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInitializationContext.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInitializationContext.java
index 7e54175..61200f3 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInitializationContext.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInitializationContext.java
@@ -15,10 +15,10 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 import org.apache.logging.log4j.plugins.util.Value;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTarget.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInjectionTarget.java
similarity index 87%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTarget.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInjectionTarget.java
index ff56366..bf1ec0c 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTarget.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInjectionTarget.java
@@ -15,20 +15,20 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
 import org.apache.logging.log4j.plugins.api.Disposes;
 import org.apache.logging.log4j.plugins.api.Inject;
 import org.apache.logging.log4j.plugins.api.Produces;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.InjectionTarget;
-import org.apache.logging.log4j.plugins.spi.bean.Injector;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaConstructor;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
-import org.apache.logging.log4j.plugins.spi.model.MetaMember;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.InjectionTarget;
+import org.apache.logging.log4j.core.config.di.api.bean.Injector;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaConstructor;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMember;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTargetFactory.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInjectionTargetFactory.java
similarity index 85%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTargetFactory.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInjectionTargetFactory.java
index edaf306..94f379c 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTargetFactory.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInjectionTargetFactory.java
@@ -15,22 +15,22 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
 import org.apache.logging.log4j.plugins.api.Inject;
 import org.apache.logging.log4j.plugins.api.PostConstruct;
 import org.apache.logging.log4j.plugins.api.PreDestroy;
-import org.apache.logging.log4j.plugins.spi.DefinitionException;
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.InjectionTarget;
-import org.apache.logging.log4j.plugins.spi.bean.InjectionTargetFactory;
-import org.apache.logging.log4j.plugins.spi.bean.Injector;
-import org.apache.logging.log4j.plugins.spi.model.ElementManager;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaConstructor;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.DefinitionException;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.InjectionTarget;
+import org.apache.logging.log4j.core.config.di.api.bean.InjectionTargetFactory;
+import org.apache.logging.log4j.core.config.di.api.bean.Injector;
+import org.apache.logging.log4j.core.config.di.api.model.ElementManager;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaConstructor;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 
 import java.util.ArrayList;
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjector.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInjector.java
similarity index 85%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjector.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInjector.java
index 6e228a8..e3473a1 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjector.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultInjector.java
@@ -15,17 +15,17 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
 import org.apache.logging.log4j.plugins.api.Disposes;
-import org.apache.logging.log4j.plugins.spi.bean.BeanManager;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.Injector;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaConstructor;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
-import org.apache.logging.log4j.plugins.spi.model.MetaParameter;
+import org.apache.logging.log4j.core.config.di.api.bean.BeanManager;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.Injector;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaConstructor;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.model.MetaParameter;
 
 import java.util.Collection;
 import java.util.List;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultScopeContext.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultScopeContext.java
similarity index 89%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultScopeContext.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultScopeContext.java
index 42e46b0..b0904ae 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultScopeContext.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultScopeContext.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.ScopeContext;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.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-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DependentScopeContext.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DependentScopeContext.java
similarity index 86%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DependentScopeContext.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DependentScopeContext.java
index 09b4a7a..4fab1c0 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DependentScopeContext.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/DependentScopeContext.java
@@ -15,12 +15,12 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
 import org.apache.logging.log4j.plugins.api.DependentScoped;
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.ScopeContext;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.ScopeContext;
 
 import java.lang.annotation.Annotation;
 import java.util.Optional;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/FieldProducer.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/FieldProducer.java
similarity index 79%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/FieldProducer.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/FieldProducer.java
index 7529ee1..9f094e2 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/FieldProducer.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/FieldProducer.java
@@ -15,14 +15,14 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
-
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.BeanManager;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+package org.apache.logging.log4j.core.config.di.impl.bean;
+
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.BeanManager;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 
 import java.lang.reflect.Type;
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/FieldProducerFactory.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/FieldProducerFactory.java
similarity index 78%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/FieldProducerFactory.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/FieldProducerFactory.java
index f629a45..7c28286 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/FieldProducerFactory.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/FieldProducerFactory.java
@@ -15,14 +15,14 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.BeanManager;
-import org.apache.logging.log4j.plugins.spi.bean.Producer;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.BeanManager;
+import org.apache.logging.log4j.core.config.di.api.bean.Producer;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/InjectionTargetBean.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/InjectionTargetBean.java
similarity index 82%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/InjectionTargetBean.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/InjectionTargetBean.java
index 663ecd4..301bcb2 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/InjectionTargetBean.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/InjectionTargetBean.java
@@ -15,15 +15,15 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.IllegalProductException;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.InjectionTarget;
-import org.apache.logging.log4j.plugins.spi.bean.InjectionTargetFactory;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
+import org.apache.logging.log4j.core.config.di.IllegalProductException;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.InjectionTarget;
+import org.apache.logging.log4j.core.config.di.api.bean.InjectionTargetFactory;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
 
 import java.util.Collection;
 import java.util.Objects;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/MethodProducer.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/MethodProducer.java
similarity index 82%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/MethodProducer.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/MethodProducer.java
index 8baf1c2..cfc37b2 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/MethodProducer.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/MethodProducer.java
@@ -15,14 +15,14 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
-
-import org.apache.logging.log4j.plugins.spi.DefinitionException;
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.BeanManager;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+package org.apache.logging.log4j.core.config.di.impl.bean;
+
+import org.apache.logging.log4j.core.config.di.DefinitionException;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.BeanManager;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 
 import java.lang.reflect.Type;
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/MethodProducerFactory.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/MethodProducerFactory.java
similarity index 82%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/MethodProducerFactory.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/MethodProducerFactory.java
index d503cea..c1cbf43 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/MethodProducerFactory.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/MethodProducerFactory.java
@@ -15,13 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.BeanManager;
-import org.apache.logging.log4j.plugins.spi.bean.Producer;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.BeanManager;
+import org.apache.logging.log4j.core.config.di.api.bean.Producer;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/OptionalBean.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/OptionalBean.java
similarity index 87%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/OptionalBean.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/OptionalBean.java
index a0d6feb..ee23a73 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/OptionalBean.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/OptionalBean.java
@@ -15,14 +15,14 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
 import org.apache.logging.log4j.plugins.api.DependentScoped;
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.Qualifiers;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 import org.apache.logging.log4j.plugins.util.Value;
 
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/ProducerBean.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/ProducerBean.java
similarity index 84%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/ProducerBean.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/ProducerBean.java
index a70f1fd..11b5608 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/ProducerBean.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/ProducerBean.java
@@ -15,15 +15,15 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.IllegalProductException;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.Producer;
-import org.apache.logging.log4j.plugins.spi.bean.ProducerFactory;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
+import org.apache.logging.log4j.core.config.di.IllegalProductException;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.Producer;
+import org.apache.logging.log4j.core.config.di.api.bean.ProducerFactory;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
 
 import java.lang.reflect.Type;
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/ProvidedBean.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/ProvidedBean.java
similarity index 81%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/ProvidedBean.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/ProvidedBean.java
index fe9fea6..6a8b388 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/ProvidedBean.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/ProvidedBean.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.ProviderFactory;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.ProviderFactory;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
 
 class ProvidedBean<T> extends SystemBean<T> {
     private final ProviderFactory<T> providerFactory;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/ProviderBean.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/ProviderBean.java
similarity index 82%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/ProviderBean.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/ProviderBean.java
index 47f4fc9..77bd7b0 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/ProviderBean.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/ProviderBean.java
@@ -15,12 +15,12 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
 import org.apache.logging.log4j.plugins.api.Provider;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.ProviderFactory;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.ProviderFactory;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
 
 class ProviderBean<T> extends SystemBean<Provider<T>> {
     private final ProviderFactory<T> providerFactory;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/SystemBean.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/SystemBean.java
similarity index 79%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/SystemBean.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/SystemBean.java
index c00eab6..5906f0c 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/SystemBean.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/bean/SystemBean.java
@@ -15,14 +15,14 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.Qualifiers;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/AbstractMetaExecutable.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/AbstractMetaExecutable.java
similarity index 85%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/AbstractMetaExecutable.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/AbstractMetaExecutable.java
index e34a5cc..4060dec 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/AbstractMetaExecutable.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/AbstractMetaExecutable.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaExecutable;
-import org.apache.logging.log4j.plugins.spi.model.MetaParameter;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaExecutable;
+import org.apache.logging.log4j.core.config.di.api.model.MetaParameter;
 
 import java.lang.reflect.Executable;
 import java.lang.reflect.Parameter;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/AbstractMetaMember.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/AbstractMetaMember.java
similarity index 89%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/AbstractMetaMember.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/AbstractMetaMember.java
index a7cecdc..4a5d72b 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/AbstractMetaMember.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/AbstractMetaMember.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.model.MetaAnnotation;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaMember;
+import org.apache.logging.log4j.core.config.di.api.model.MetaAnnotation;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMember;
 
 import java.lang.reflect.AnnotatedElement;
 import java.lang.reflect.Member;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultElementManager.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultElementManager.java
similarity index 89%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultElementManager.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultElementManager.java
index c80a920..705c3cc 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultElementManager.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultElementManager.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
 import org.apache.logging.log4j.plugins.api.AnnotationAlias;
 import org.apache.logging.log4j.plugins.api.Default;
@@ -25,19 +25,19 @@ import org.apache.logging.log4j.plugins.api.Named;
 import org.apache.logging.log4j.plugins.api.QualifierType;
 import org.apache.logging.log4j.plugins.api.ScopeType;
 import org.apache.logging.log4j.plugins.internal.util.BeanUtils;
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.model.ElementManager;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaAnnotation;
-import org.apache.logging.log4j.plugins.spi.model.MetaAnnotationElement;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaElement;
-import org.apache.logging.log4j.plugins.spi.model.MetaExecutable;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
-import org.apache.logging.log4j.plugins.spi.model.MetaParameter;
-import org.apache.logging.log4j.plugins.spi.model.Qualifiers;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.model.ElementManager;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaAnnotation;
+import org.apache.logging.log4j.core.config.di.api.model.MetaAnnotationElement;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaElement;
+import org.apache.logging.log4j.core.config.di.api.model.MetaExecutable;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.model.MetaParameter;
+import org.apache.logging.log4j.core.config.di.api.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
 import org.apache.logging.log4j.plugins.util.Cache;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 import org.apache.logging.log4j.plugins.util.WeakCache;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultInjectionPoint.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultInjectionPoint.java
similarity index 87%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultInjectionPoint.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultInjectionPoint.java
index eba0996..0ecefe8 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultInjectionPoint.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultInjectionPoint.java
@@ -15,13 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaElement;
-import org.apache.logging.log4j.plugins.spi.model.MetaMember;
-import org.apache.logging.log4j.plugins.spi.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaElement;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMember;
+import org.apache.logging.log4j.core.config.di.api.model.Qualifiers;
 
 import java.lang.reflect.Type;
 import java.util.Objects;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaAnnotation.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaAnnotation.java
similarity index 94%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaAnnotation.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaAnnotation.java
index 0751817..aa01a25 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaAnnotation.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaAnnotation.java
@@ -15,13 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
 import org.apache.logging.log4j.plugins.api.AnnotationAlias;
 import org.apache.logging.log4j.plugins.api.Named;
-import org.apache.logging.log4j.plugins.spi.InitializationException;
-import org.apache.logging.log4j.plugins.spi.model.MetaAnnotation;
-import org.apache.logging.log4j.plugins.spi.model.MetaAnnotationElement;
+import org.apache.logging.log4j.core.config.di.InitializationException;
+import org.apache.logging.log4j.core.config.di.api.model.MetaAnnotation;
+import org.apache.logging.log4j.core.config.di.api.model.MetaAnnotationElement;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.InvocationTargetException;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaAnnotationElement.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaAnnotationElement.java
similarity index 91%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaAnnotationElement.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaAnnotationElement.java
index ce436c0..266be71 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaAnnotationElement.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaAnnotationElement.java
@@ -15,10 +15,10 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.model.MetaAnnotation;
-import org.apache.logging.log4j.plugins.spi.model.MetaAnnotationElement;
+import org.apache.logging.log4j.core.config.di.api.model.MetaAnnotation;
+import org.apache.logging.log4j.core.config.di.api.model.MetaAnnotationElement;
 
 import java.lang.reflect.Type;
 import java.util.Collection;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaClass.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaClass.java
similarity index 91%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaClass.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaClass.java
index 219ff77..3f956cc 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaClass.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaClass.java
@@ -15,13 +15,13 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.model.MetaAnnotation;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaConstructor;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.model.MetaAnnotation;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaConstructor;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 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-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaConstructor.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaConstructor.java
similarity index 86%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaConstructor.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaConstructor.java
index 53bc32a..b118b52 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaConstructor.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaConstructor.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.InitializationException;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaConstructor;
+import org.apache.logging.log4j.core.config.di.InitializationException;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaConstructor;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaField.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaField.java
similarity index 87%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaField.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaField.java
index 81f2e47..5031219 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaField.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaField.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.InitializationException;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaField;
+import org.apache.logging.log4j.core.config.di.InitializationException;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaField;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
 import java.lang.reflect.Field;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaMethod.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaMethod.java
similarity index 87%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaMethod.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaMethod.java
index c92fac6..dbe7b35 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaMethod.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaMethod.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.InitializationException;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.InitializationException;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 
 import java.lang.reflect.InvocationTargetException;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaParameter.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaParameter.java
similarity index 87%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaParameter.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaParameter.java
index e581fa4..b85f41f 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultMetaParameter.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultMetaParameter.java
@@ -15,11 +15,11 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.model.MetaAnnotation;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaParameter;
+import org.apache.logging.log4j.core.config.di.api.model.MetaAnnotation;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaParameter;
 
 import java.lang.reflect.Parameter;
 import java.lang.reflect.Type;
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultVariable.java
 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultVariable.java
similarity index 92%
rename from 
log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultVariable.java
rename to 
log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultVariable.java
index cc7cf4a..f527f09 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/model/DefaultVariable.java
+++ 
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/di/impl/model/DefaultVariable.java
@@ -15,10 +15,10 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.model;
+package org.apache.logging.log4j.core.config.di.impl.model;
 
-import org.apache.logging.log4j.plugins.spi.model.Qualifiers;
-import org.apache.logging.log4j.plugins.spi.model.Variable;
+import org.apache.logging.log4j.core.config.di.api.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.api.model.Variable;
 
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
diff --git a/log4j-core/src/main/java9/module-info.java 
b/log4j-core/src/main/java9/module-info.java
index 9133d77..b78bddf 100644
--- a/log4j-core/src/main/java9/module-info.java
+++ b/log4j-core/src/main/java9/module-info.java
@@ -29,6 +29,11 @@ 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.api.bean;
+    exports org.apache.logging.log4j.core.config.di.api.model;
+    exports org.apache.logging.log4j.core.config.di.impl.bean;
+    exports org.apache.logging.log4j.core.config.di.impl.model;
     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;
diff --git 
a/log4j-plugins/src/test/java/org/apache/logging/log4j/plugins/test/BeanJUnit4Runner.java
 
b/log4j-core/src/test/java-test/org/apache/logging/log4j/core/test/junit/BeanJUnit4Runner.java
similarity index 83%
rename from 
log4j-plugins/src/test/java/org/apache/logging/log4j/plugins/test/BeanJUnit4Runner.java
rename to 
log4j-core/src/test/java-test/org/apache/logging/log4j/core/test/junit/BeanJUnit4Runner.java
index 2a8459f..151ea3f 100644
--- 
a/log4j-plugins/src/test/java/org/apache/logging/log4j/plugins/test/BeanJUnit4Runner.java
+++ 
b/log4j-core/src/test/java-test/org/apache/logging/log4j/core/test/junit/BeanJUnit4Runner.java
@@ -15,22 +15,22 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.test;
+package org.apache.logging.log4j.core.test.junit;
 
-import org.apache.logging.log4j.plugins.defaults.bean.DefaultBeanManager;
-import org.apache.logging.log4j.plugins.defaults.bean.DefaultInjector;
-import org.apache.logging.log4j.plugins.defaults.model.DefaultElementManager;
-import org.apache.logging.log4j.plugins.spi.DefinitionException;
-import org.apache.logging.log4j.plugins.spi.UnsatisfiedBeanException;
-import org.apache.logging.log4j.plugins.spi.bean.Bean;
-import org.apache.logging.log4j.plugins.spi.bean.BeanManager;
-import org.apache.logging.log4j.plugins.spi.bean.InitializationContext;
-import org.apache.logging.log4j.plugins.spi.bean.Injector;
-import org.apache.logging.log4j.plugins.spi.model.ElementManager;
-import org.apache.logging.log4j.plugins.spi.model.InjectionPoint;
-import org.apache.logging.log4j.plugins.spi.model.MetaClass;
-import org.apache.logging.log4j.plugins.spi.model.MetaMethod;
-import org.apache.logging.log4j.plugins.spi.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.DefinitionException;
+import org.apache.logging.log4j.core.config.di.UnsatisfiedBeanException;
+import org.apache.logging.log4j.core.config.di.api.bean.Bean;
+import org.apache.logging.log4j.core.config.di.api.bean.BeanManager;
+import org.apache.logging.log4j.core.config.di.api.bean.InitializationContext;
+import org.apache.logging.log4j.core.config.di.api.bean.Injector;
+import org.apache.logging.log4j.core.config.di.api.model.ElementManager;
+import org.apache.logging.log4j.core.config.di.api.model.InjectionPoint;
+import org.apache.logging.log4j.core.config.di.api.model.MetaClass;
+import org.apache.logging.log4j.core.config.di.api.model.MetaMethod;
+import org.apache.logging.log4j.core.config.di.api.model.Qualifiers;
+import org.apache.logging.log4j.core.config.di.impl.bean.DefaultBeanManager;
+import org.apache.logging.log4j.core.config.di.impl.bean.DefaultInjector;
+import 
org.apache.logging.log4j.core.config.di.impl.model.DefaultElementManager;
 import org.apache.logging.log4j.plugins.util.TypeUtil;
 import org.junit.Test;
 import org.junit.runners.BlockJUnit4ClassRunner;
diff --git 
a/log4j-plugins/src/test/java/org/apache/logging/log4j/plugins/test/WithBeans.java
 
b/log4j-core/src/test/java-test/org/apache/logging/log4j/core/test/junit/WithBeans.java
similarity index 96%
rename from 
log4j-plugins/src/test/java/org/apache/logging/log4j/plugins/test/WithBeans.java
rename to 
log4j-core/src/test/java-test/org/apache/logging/log4j/core/test/junit/WithBeans.java
index fcaef5e..694ccc0 100644
--- 
a/log4j-plugins/src/test/java/org/apache/logging/log4j/plugins/test/WithBeans.java
+++ 
b/log4j-core/src/test/java-test/org/apache/logging/log4j/core/test/junit/WithBeans.java
@@ -15,7 +15,7 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.test;
+package org.apache.logging.log4j.core.test.junit;
 
 import java.lang.annotation.Documented;
 import java.lang.annotation.ElementType;
diff --git 
a/log4j-plugins/src/test/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManagerTest.java
 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultBeanManagerTest.java
similarity index 98%
rename from 
log4j-plugins/src/test/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManagerTest.java
rename to 
log4j-core/src/test/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultBeanManagerTest.java
index 0d30f17..2cee816 100644
--- 
a/log4j-plugins/src/test/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultBeanManagerTest.java
+++ 
b/log4j-core/src/test/java/org/apache/logging/log4j/core/config/di/impl/bean/DefaultBeanManagerTest.java
@@ -15,8 +15,10 @@
  * limitations under the license.
  */
 
-package org.apache.logging.log4j.plugins.defaults.bean;
+package org.apache.logging.log4j.core.config.di.impl.bean;
 
+import org.apache.logging.log4j.core.test.junit.BeanJUnit4Runner;
+import org.apache.logging.log4j.core.test.junit.WithBeans;
 import org.apache.logging.log4j.plugins.api.Default;
 import org.apache.logging.log4j.plugins.api.Inject;
 import org.apache.logging.log4j.plugins.api.Named;
@@ -25,8 +27,6 @@ import org.apache.logging.log4j.plugins.api.Produces;
 import org.apache.logging.log4j.plugins.api.Provider;
 import org.apache.logging.log4j.plugins.api.QualifierType;
 import org.apache.logging.log4j.plugins.api.SingletonScoped;
-import org.apache.logging.log4j.plugins.test.BeanJUnit4Runner;
-import org.apache.logging.log4j.plugins.test.WithBeans;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
diff --git a/log4j-core/src/test/java9/module-info.java 
b/log4j-core/src/test/java9/module-info.java
index 72544e2..b7d1787 100644
--- a/log4j-core/src/test/java9/module-info.java
+++ b/log4j-core/src/test/java9/module-info.java
@@ -27,6 +27,7 @@ open module org.apache.logging.log4j.core {
     exports org.apache.logging.log4j.core.config;
     exports org.apache.logging.log4j.core.config.arbiters;
     exports org.apache.logging.log4j.core.config.builder;
+    exports org.apache.logging.log4j.core.config.di.impl.bean;
     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;

Reply via email to