This is an automated email from the ASF dual-hosted git repository. mattsicker pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 5b95e98d30a320c4a6f43bac201cfe2e0ef055b7 Author: Matt Sicker <[email protected]> AuthorDate: Tue Jan 2 17:09:16 2024 -0600 Make InjectionPoint a record --- .../log4j/plugins/di/DefaultInstanceFactory.java | 8 +++--- .../resolver/AbstractAttributeFactoryResolver.java | 2 +- .../log4j/plugins/di/spi/InjectionPoint.java | 29 +--------------------- 3 files changed, 6 insertions(+), 33 deletions(-) diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DefaultInstanceFactory.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DefaultInstanceFactory.java index e9d409b737..477211c634 100644 --- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DefaultInstanceFactory.java +++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DefaultInstanceFactory.java @@ -199,12 +199,12 @@ public class DefaultInstanceFactory implements ConfigurableInstanceFactory { protected <T> Supplier<T> getArgumentFactory( final InjectionPoint<T> injectionPoint, final DependencyChain dependencyChain) { - final Key<T> key = injectionPoint.getKey(); + final Key<T> key = injectionPoint.key(); if (key.getRawType() != Supplier.class && dependencyChain.hasDependency(key)) { throw new CircularDependencyException(key, dependencyChain); } - final AnnotatedElement element = injectionPoint.getElement(); - final ResolvableKey<T> resolvableKey = ResolvableKey.of(key, injectionPoint.getAliases(), dependencyChain); + final AnnotatedElement element = injectionPoint.element(); + final ResolvableKey<T> resolvableKey = ResolvableKey.of(key, injectionPoint.aliases(), dependencyChain); return () -> { currentInjectionPoint.set(injectionPoint); try { @@ -378,7 +378,7 @@ public class DefaultInstanceFactory implements ConfigurableInstanceFactory { protected <T> void injectField(final Field field, final Object instance) { final InjectionPoint<T> point = InjectionPoint.forField(field); currentInjectionPoint.set(point); - final ResolvableKey<T> resolvableKey = ResolvableKey.of(point.getKey(), point.getAliases()); + final ResolvableKey<T> resolvableKey = ResolvableKey.of(point.key(), point.aliases()); try { final T value = getInstance(resolvableKey); // TODO(ms): if null, consider throwing exception here diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/resolver/AbstractAttributeFactoryResolver.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/resolver/AbstractAttributeFactoryResolver.java index 348de5c0f2..bfd9a9c85d 100644 --- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/resolver/AbstractAttributeFactoryResolver.java +++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/resolver/AbstractAttributeFactoryResolver.java @@ -51,7 +51,7 @@ public abstract class AbstractAttributeFactoryResolver<T, A extends Annotation> final Key<?> key = resolvableKey.getKey(); final Type type = key.getType(); final TypeConverter<T> typeConverter = instanceFactory.getTypeConverter(type); - final AnnotatedElement element = injectionPoint.getElement(); + final AnnotatedElement element = injectionPoint.element(); final A annotation = element.getAnnotation(annotationType); final boolean sensitive = isSensitive(annotation); final Node node = instanceFactory.getInstance(Node.CURRENT_NODE); diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/InjectionPoint.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/InjectionPoint.java index 075cc3b849..a47cc872f7 100644 --- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/InjectionPoint.java +++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/InjectionPoint.java @@ -27,37 +27,10 @@ import java.util.stream.Stream; import org.apache.logging.log4j.plugins.di.Key; import org.apache.logging.log4j.plugins.di.Keys; -public class InjectionPoint<T> { +public record InjectionPoint<T>(Key<T> key, Collection<String> aliases, AnnotatedElement element) { public static final Key<InjectionPoint<?>> CURRENT_INJECTION_POINT = new Key<>() {}; - private final Key<T> key; - private final Collection<String> aliases; - private final AnnotatedElement element; - - private InjectionPoint(final Key<T> key, final Collection<String> aliases, final AnnotatedElement element) { - this.key = key; - this.aliases = aliases; - this.element = element; - } - - public Key<T> getKey() { - return key; - } - - public Collection<String> getAliases() { - return aliases; - } - - public AnnotatedElement getElement() { - return element; - } - - @Override - public String toString() { - return "InjectionPoint{" + "key=" + key + ", aliases=" + aliases + ", element=" + element + '}'; - } - public static <T> InjectionPoint<T> forField(final Field field) { final Key<T> key = Key.forField(field); final Collection<String> aliases = Keys.getAliases(field);
