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);

Reply via email to