You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2020/03/22 22:43:01 UTC

[logging-log4j2] 02/03: Avoid LoD violations

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 60cc78c5cd8b747d87b9669f110b87b46afab27c
Author: Matt Sicker <bo...@gmail.com>
AuthorDate: Sun Mar 22 17:32:15 2020 -0500

    Avoid LoD violations
    
    Signed-off-by: Matt Sicker <bo...@gmail.com>
---
 .../log4j/plugins/defaults/bean/DefaultInjectionTarget.java      | 9 +++------
 .../plugins/defaults/bean/DefaultInjectionTargetFactory.java     | 2 +-
 2 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTarget.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTarget.java
index 069ead6..85ccd14 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTarget.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTarget.java
@@ -23,7 +23,6 @@ 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.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;
@@ -42,17 +41,17 @@ import java.util.stream.Collectors;
 
 class DefaultInjectionTarget<T> implements InjectionTarget<T> {
     private final Injector injector;
-    private final ElementManager elementManager;
+    private final MetaClass<T> metaClass;
     private final Collection<InjectionPoint> injectionPoints;
     private final MetaConstructor<T> constructor;
     private final List<MetaMethod<T, ?>> postConstructMethods;
     private final List<MetaMethod<T, ?>> preDestroyMethods;
 
-    DefaultInjectionTarget(final Injector injector, final ElementManager elementManager,
+    DefaultInjectionTarget(final Injector injector, final MetaClass<T> metaClass,
                            final Collection<InjectionPoint> injectionPoints, final MetaConstructor<T> constructor,
                            final List<MetaMethod<T, ?>> postConstructMethods, final List<MetaMethod<T, ?>> preDestroyMethods) {
         this.injector = injector;
-        this.elementManager = elementManager;
+        this.metaClass = metaClass;
         this.injectionPoints = Objects.requireNonNull(injectionPoints);
         this.constructor = Objects.requireNonNull(constructor);
         this.postConstructMethods = Objects.requireNonNull(postConstructMethods);
@@ -71,8 +70,6 @@ class DefaultInjectionTarget<T> implements InjectionTarget<T> {
     public void inject(final T instance, final InitializationContext<T> context) {
         injectFields(instance, context);
         injectMethods(instance, context);
-        final Class<T> clazz = TypeUtil.cast(instance.getClass());
-        final MetaClass<T> metaClass = elementManager.getMetaClass(clazz);
         for (final MetaMethod<T, ?> method : metaClass.getMethods()) {
             if (method.isAnnotationPresent(Inject.class) && method.getParameters().isEmpty()) {
                 injector.invoke(instance, method, Collections.emptySet(), context);
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTargetFactory.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTargetFactory.java
index 78ab70d..edaf306 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTargetFactory.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/defaults/bean/DefaultInjectionTargetFactory.java
@@ -75,7 +75,7 @@ class DefaultInjectionTargetFactory<T> implements InjectionTargetFactory<T> {
         final List<MetaMethod<T, ?>> preDestroyMethods = methods.stream()
                 .filter(method -> method.isAnnotationPresent(PreDestroy.class))
                 .collect(Collectors.toList());
-        return new DefaultInjectionTarget<>(injector, elementManager, injectionPoints, constructor,
+        return new DefaultInjectionTarget<>(injector, type, injectionPoints, constructor,
                 postConstructMethods, preDestroyMethods);
     }