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

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

commit d4aa73b307afa201965621fd476622117e8016f3
Author: Matt Sicker <[email protected]>
AuthorDate: Fri May 27 15:28:33 2022 -0500

    Remove unused PluginType::getImplementedInterfaces
    
    Signed-off-by: Matt Sicker <[email protected]>
---
 .../log4j/plugin/processor/PluginProcessor.java    | 73 +++++-----------------
 .../log4j/plugins/processor/PluginEntry.java       | 31 ---------
 .../logging/log4j/plugins/util/PluginType.java     | 18 +-----
 3 files changed, 15 insertions(+), 107 deletions(-)

diff --git 
a/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/plugin/processor/PluginProcessor.java
 
b/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/plugin/processor/PluginProcessor.java
index 88c64ae613..590e81f531 100644
--- 
a/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/plugin/processor/PluginProcessor.java
+++ 
b/log4j-plugin-processor/src/main/java/org/apache/logging/log4j/plugin/processor/PluginProcessor.java
@@ -34,16 +34,10 @@ import javax.lang.model.SourceVersion;
 import javax.lang.model.element.AnnotationValue;
 import javax.lang.model.element.Element;
 import javax.lang.model.element.ElementVisitor;
-import javax.lang.model.element.Modifier;
 import javax.lang.model.element.Name;
 import javax.lang.model.element.TypeElement;
-import javax.lang.model.type.DeclaredType;
-import javax.lang.model.type.TypeMirror;
-import javax.lang.model.util.ElementKindVisitor9;
 import javax.lang.model.util.Elements;
 import javax.lang.model.util.SimpleElementVisitor8;
-import javax.lang.model.util.SimpleTypeVisitor9;
-import javax.lang.model.util.Types;
 import javax.tools.Diagnostic.Kind;
 import javax.tools.FileObject;
 import javax.tools.JavaFileObject;
@@ -55,7 +49,6 @@ import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -97,7 +90,7 @@ public class PluginProcessor extends AbstractProcessor {
                 return false;
             }
             messager.printMessage(Kind.NOTE, "Retrieved " + elements.size() + 
" Plugin elements");
-            List<PluginEntryMirror> list = new ArrayList<>();
+            List<PluginEntry> list = new ArrayList<>();
             packageName = collectPlugins(packageName, elements, list);
             writeClassFile(packageName, list);
             writeServiceFile(packageName);
@@ -112,18 +105,18 @@ public class PluginProcessor extends AbstractProcessor {
         processingEnv.getMessager().printMessage(Kind.ERROR, message);
     }
 
-    private String collectPlugins(String packageName, final Iterable<? extends 
Element> elements, List<PluginEntryMirror> list) {
+    private String collectPlugins(String packageName, final Iterable<? extends 
Element> elements, List<PluginEntry> list) {
         boolean calculatePackage = packageName == null;
         final Elements elementUtils = processingEnv.getElementUtils();
-        final ElementVisitor<PluginEntryMirror, Plugin> pluginVisitor = new 
PluginElementVisitor(elementUtils);
-        final ElementVisitor<Collection<PluginEntryMirror>, Plugin> 
pluginAliasesVisitor = new PluginAliasesElementVisitor(
+        final ElementVisitor<PluginEntry, Plugin> pluginVisitor = new 
PluginElementVisitor(elementUtils);
+        final ElementVisitor<Collection<PluginEntry>, Plugin> 
pluginAliasesVisitor = new PluginAliasesElementVisitor(
                 elementUtils);
         for (final Element element : elements) {
             final Plugin plugin = element.getAnnotation(Plugin.class);
             if (plugin == null) {
                 continue;
             }
-            final PluginEntryMirror entry = element.accept(pluginVisitor, 
plugin);
+            final PluginEntry entry = element.accept(pluginVisitor, plugin);
             list.add(entry);
             if (calculatePackage) {
                 packageName = calculatePackage(elementUtils, element, 
packageName);
@@ -160,7 +153,7 @@ public class PluginProcessor extends AbstractProcessor {
         }
     }
 
-    private void writeClassFile(String pkg, List<PluginEntryMirror> list) {
+    private void writeClassFile(String pkg, List<PluginEntry> list) {
         String fqcn = createFqcn(pkg);
         try (final PrintWriter writer = createSourceFile(fqcn)) {
             writer.println("package " + pkg + ".plugins;");
@@ -174,8 +167,7 @@ public class PluginProcessor extends AbstractProcessor {
             StringBuilder sb = new StringBuilder();
             int max = list.size() - 1;
             for (int i = 0; i < list.size(); ++i) {
-                PluginEntryMirror mirror = list.get(i);
-                final PluginEntry entry = mirror.entry;
+                final PluginEntry entry = list.get(i);
                 sb.append("        ").append("new PluginEntry(\"");
                 sb.append(entry.getKey()).append("\", \"");
                 sb.append(entry.getClassName()).append("\", \"");
@@ -188,9 +180,6 @@ public class PluginProcessor extends AbstractProcessor {
                 sb.append(entry.isPrintable()).append(", ");
                 sb.append(entry.isDeferChildren()).append(", \"");
                 sb.append(entry.getNamespace()).append("\"");
-                for (final Name implementedInterface : 
getImplementedInterfaces(mirror.element.asType())) {
-                    sb.append(", 
").append(implementedInterface).append(".class");
-                }
                 sb.append(')');
                 if (i < max) {
                     sb.append(",");
@@ -218,16 +207,6 @@ public class PluginProcessor extends AbstractProcessor {
         return packageName + ".plugins.Log4jPlugins";
     }
 
-    private static class PluginEntryMirror {
-        private final TypeElement element;
-        private final PluginEntry entry;
-
-        private PluginEntryMirror(final TypeElement element, final PluginEntry 
entry) {
-            this.element = element;
-            this.entry = entry;
-        }
-    }
-
     private static String getNamespace(final TypeElement e) {
         return 
Optional.ofNullable(e.getAnnotation(Namespace.class)).map(Namespace::value).orElseGet(
                 () -> e.getAnnotationMirrors().stream().flatMap(
@@ -242,7 +221,7 @@ public class PluginProcessor extends AbstractProcessor {
     /**
      * ElementVisitor to scan the Plugin annotation.
      */
-    private static class PluginElementVisitor extends 
SimpleElementVisitor8<PluginEntryMirror, Plugin> {
+    private static class PluginElementVisitor extends 
SimpleElementVisitor8<PluginEntry, Plugin> {
 
         private final Elements elements;
 
@@ -251,7 +230,7 @@ public class PluginProcessor extends AbstractProcessor {
         }
 
         @Override
-        public PluginEntryMirror visitType(final TypeElement e, final Plugin 
plugin) {
+        public PluginEntry visitType(final TypeElement e, final Plugin plugin) 
{
             Objects.requireNonNull(plugin, "Plugin annotation is null.");
             String name = plugin.value();
             if (name.isEmpty()) {
@@ -270,34 +249,10 @@ public class PluginProcessor extends AbstractProcessor {
             } else {
                 builder.setNamespace(getNamespace(e));
             }
-            return new PluginEntryMirror(e, builder.get());
+            return builder.get();
         }
     }
 
-    private Set<Name> getImplementedInterfaces(final TypeMirror base) {
-        final Set<Name> implementedInterfaces = new LinkedHashSet<>();
-        final Types types = processingEnv.getTypeUtils();
-        base.accept(new SimpleTypeVisitor9<Void, Void>() {
-            @Override
-            public Void visitDeclared(final DeclaredType t, final Void unused) 
{
-                for (final TypeMirror directSupertype : 
types.directSupertypes(t)) {
-                    directSupertype.accept(this, null);
-                }
-                t.asElement().accept(new ElementKindVisitor9<Void, Void>() {
-                    @Override
-                    public Void visitTypeAsInterface(final TypeElement e, 
final Void unused) {
-                        if (e.getModifiers().contains(Modifier.PUBLIC)) {
-                            implementedInterfaces.add(e.getQualifiedName());
-                        }
-                        return null;
-                    }
-                }, null);
-                return null;
-            }
-        }, null);
-        return implementedInterfaces;
-    }
-
     private String commonPrefix(String str1, String str2) {
         int minLength = Math.min(str1.length(), str2.length());
         for (int i = 0; i < minLength; i++) {
@@ -315,7 +270,7 @@ public class PluginProcessor extends AbstractProcessor {
     /**
      * ElementVisitor to scan the PluginAliases annotation.
      */
-    private static class PluginAliasesElementVisitor extends 
SimpleElementVisitor8<Collection<PluginEntryMirror>, Plugin> {
+    private static class PluginAliasesElementVisitor extends 
SimpleElementVisitor8<Collection<PluginEntry>, Plugin> {
 
         private final Elements elements;
 
@@ -325,7 +280,7 @@ public class PluginProcessor extends AbstractProcessor {
         }
 
         @Override
-        public Collection<PluginEntryMirror> visitType(final TypeElement e, 
final Plugin plugin) {
+        public Collection<PluginEntry> visitType(final TypeElement e, final 
Plugin plugin) {
             final PluginAliases aliases = e.getAnnotation(PluginAliases.class);
             if (aliases == null) {
                 return DEFAULT_VALUE;
@@ -346,10 +301,10 @@ public class PluginProcessor extends AbstractProcessor {
             } else {
                 builder.setNamespace(getNamespace(e));
             }
-            final Collection<PluginEntryMirror> entries = new 
ArrayList<>(aliases.value().length);
+            final Collection<PluginEntry> entries = new 
ArrayList<>(aliases.value().length);
             for (final String alias : aliases.value()) {
                 final PluginEntry entry = 
builder.setKey(alias.toLowerCase(Locale.ROOT)).get();
-                entries.add(new PluginEntryMirror(e, entry));
+                entries.add(entry);
             }
             return entries;
         }
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/processor/PluginEntry.java
 
b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/processor/PluginEntry.java
index d8c34f7a4a..5dcd25b3bb 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/processor/PluginEntry.java
+++ 
b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/processor/PluginEntry.java
@@ -30,7 +30,6 @@ public class PluginEntry {
     private final boolean printable;
     private final boolean deferChildren;
     private final String namespace;
-    private final Class<?>[] interfaces;
 
     public PluginEntry(
             String key, String className, String name, String elementType, 
boolean printable, boolean deferChildren, String namespace) {
@@ -41,20 +40,6 @@ public class PluginEntry {
         this.printable = printable;
         this.deferChildren = deferChildren;
         this.namespace = namespace;
-        this.interfaces = null;
-    }
-
-    public PluginEntry(
-            final String key, final String className, final String name, final 
String elementType, final boolean printable,
-            final boolean deferChildren, final String namespace, final 
Class<?>... interfaces) {
-        this.key = key;
-        this.className = className;
-        this.name = name;
-        this.elementType = elementType;
-        this.printable = printable;
-        this.deferChildren = deferChildren;
-        this.namespace = namespace;
-        this.interfaces = interfaces;
     }
 
     private PluginEntry(final Builder builder) {
@@ -65,8 +50,6 @@ public class PluginEntry {
         printable = builder.isPrintable();
         deferChildren = builder.isDeferChildren();
         namespace = builder.getNamespace();
-        final Class<?>[] classes = builder.getInterfaces();
-        interfaces = classes != null ? classes.clone() : null;
     }
 
     public String getKey() {
@@ -97,10 +80,6 @@ public class PluginEntry {
         return namespace;
     }
 
-    public Class<?>[] getInterfaces() {
-        return interfaces;
-    }
-
     @Override
     public String toString() {
         return "PluginEntry [key=" + key + ", className=" + className + ", 
name=" + name + ", printable=" + printable
@@ -119,7 +98,6 @@ public class PluginEntry {
         private boolean printable;
         private boolean deferChildren;
         private String namespace;
-        private Class<?>[] interfaces;
 
         public String getKey() {
             return key;
@@ -184,15 +162,6 @@ public class PluginEntry {
             return this;
         }
 
-        public Class<?>[] getInterfaces() {
-            return interfaces;
-        }
-
-        public Builder setInterfaces(final Class<?>... interfaces) {
-            this.interfaces = interfaces;
-            return this;
-        }
-
         @Override
         public PluginEntry get() {
             return new PluginEntry(this);
diff --git 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/PluginType.java
 
b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/PluginType.java
index dfafe901e7..cd344b8f66 100644
--- 
a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/PluginType.java
+++ 
b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/util/PluginType.java
@@ -19,7 +19,6 @@ package org.apache.logging.log4j.plugins.util;
 import org.apache.logging.log4j.plugins.processor.PluginEntry;
 import org.apache.logging.log4j.util.LazyValue;
 
-import java.util.Set;
 import java.util.function.Supplier;
 
 /**
@@ -32,7 +31,6 @@ public class PluginType<T> {
 
     private final PluginEntry pluginEntry;
     private final Supplier<Class<T>> pluginClass;
-    private final Supplier<Set<Class<?>>> implementedInterfaces;
 
     /**
      * Constructor.
@@ -44,8 +42,6 @@ public class PluginType<T> {
             final PluginEntry pluginEntry, final Class<T> pluginClass) {
         this.pluginEntry = pluginEntry;
         this.pluginClass = () -> pluginClass;
-        final var interfaces = Set.of(pluginClass.getInterfaces());
-        this.implementedInterfaces = () -> interfaces;
     }
 
     /**
@@ -55,7 +51,7 @@ public class PluginType<T> {
      */
     public PluginType(final PluginEntry pluginEntry, final ClassLoader 
classLoader) {
         this.pluginEntry = pluginEntry;
-        final LazyValue<Class<T>> classProvider = LazyValue.from(() -> {
+        this.pluginClass = LazyValue.from(() -> {
             try {
                 return 
TypeUtil.cast(classLoader.loadClass(pluginEntry.getClassName()));
             } catch (final ClassNotFoundException e) {
@@ -63,14 +59,6 @@ public class PluginType<T> {
                         " located for element " + pluginEntry.getName(), e);
             }
         });
-        this.pluginClass = classProvider;
-        final Class<?>[] interfaces = pluginEntry.getInterfaces();
-        if (interfaces != null) {
-            final var implementedInterfaces = Set.of(interfaces);
-            this.implementedInterfaces = () -> implementedInterfaces;
-        } else {
-            this.implementedInterfaces = classProvider.map(clazz -> 
Set.of(clazz.getInterfaces()));
-        }
     }
 
     public PluginEntry getPluginEntry() {
@@ -81,10 +69,6 @@ public class PluginType<T> {
         return pluginClass.get();
     }
 
-    public Set<Class<?>> getImplementedInterfaces() {
-        return implementedInterfaces.get();
-    }
-
     public String getElementType() {
         return pluginEntry.getElementType();
     }

Reply via email to