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 2023/11/13 20:15:59 UTC

(logging-log4j2) 01/02: Inline ConfigurableInstanceFactoryPostProcessor::getPostProcessors

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 c16cba94380266238bcde749b0422ac201aeb07d
Author: Matt Sicker <ma...@apache.org>
AuthorDate: Sun Nov 12 18:46:41 2023 -0600

    Inline ConfigurableInstanceFactoryPostProcessor::getPostProcessors
    
    Signed-off-by: Matt Sicker <ma...@apache.org>
---
 .../java/org/apache/logging/log4j/plugins/di/DI.java  | 12 ++++++++++--
 .../spi/ConfigurableInstanceFactoryPostProcessor.java | 19 +------------------
 2 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DI.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DI.java
index 91515c38e5..f831f3d262 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DI.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/DI.java
@@ -16,7 +16,12 @@
  */
 package org.apache.logging.log4j.plugins.di;
 
+import java.lang.invoke.MethodHandles;
+import java.util.Comparator;
+
 import org.apache.logging.log4j.plugins.di.spi.ConfigurableInstanceFactoryPostProcessor;
+import org.apache.logging.log4j.plugins.util.OrderedComparator;
+import org.apache.logging.log4j.util.ServiceRegistry;
 
 /**
  * Factory for {@linkplain InstanceFactory instance factories}.
@@ -70,7 +75,10 @@ public final class DI {
      * @param factory the instance factory to initialize
      */
     public static void initializeFactory(final ConfigurableInstanceFactory factory) {
-        ConfigurableInstanceFactoryPostProcessor.getPostProcessors()
-                .forEach(processor -> processor.postProcessFactory(factory));
+        ServiceRegistry.getInstance()
+                .getServices(ConfigurableInstanceFactoryPostProcessor.class, MethodHandles.lookup(), null)
+                .stream()
+                .sorted(Comparator.comparing(ConfigurableInstanceFactoryPostProcessor::getClass, OrderedComparator.INSTANCE))
+                .forEachOrdered(processor -> processor.postProcessFactory(factory));
     }
 }
diff --git a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/ConfigurableInstanceFactoryPostProcessor.java b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/ConfigurableInstanceFactoryPostProcessor.java
index 478e66518d..5b0dc08454 100644
--- a/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/ConfigurableInstanceFactoryPostProcessor.java
+++ b/log4j-plugins/src/main/java/org/apache/logging/log4j/plugins/di/spi/ConfigurableInstanceFactoryPostProcessor.java
@@ -16,17 +16,11 @@
  */
 package org.apache.logging.log4j.plugins.di.spi;
 
-import java.lang.invoke.MethodHandles;
-import java.util.Comparator;
-import java.util.List;
 import java.util.ServiceLoader;
 
-import aQute.bnd.annotation.Resolution;
 import aQute.bnd.annotation.spi.ServiceConsumer;
 import org.apache.logging.log4j.plugins.Ordered;
 import org.apache.logging.log4j.plugins.di.ConfigurableInstanceFactory;
-import org.apache.logging.log4j.plugins.util.OrderedComparator;
-import org.apache.logging.log4j.util.ServiceRegistry;
 
 /**
  * Provides post-processing capabilities to the initialization of a {@link ConfigurableInstanceFactory}.
@@ -34,7 +28,7 @@ import org.apache.logging.log4j.util.ServiceRegistry;
  * {@link Ordered} annotation on the class for overriding the order it will be invoked.
  */
 @FunctionalInterface
-@ServiceConsumer(value = ConfigurableInstanceFactoryPostProcessor.class, resolution = Resolution.OPTIONAL)
+@ServiceConsumer(ConfigurableInstanceFactoryPostProcessor.class)
 public interface ConfigurableInstanceFactoryPostProcessor {
 
     /**
@@ -44,15 +38,4 @@ public interface ConfigurableInstanceFactoryPostProcessor {
      */
     void postProcessFactory(final ConfigurableInstanceFactory factory);
 
-    /**
-     * Gets the list of registered post processor services and sorts them using {@link OrderedComparator}.
-     *
-     * @return list of post processor services
-     */
-    static List<ConfigurableInstanceFactoryPostProcessor> getPostProcessors() {
-        final List<ConfigurableInstanceFactoryPostProcessor> services = ServiceRegistry.getInstance()
-                .getServices(ConfigurableInstanceFactoryPostProcessor.class, MethodHandles.lookup(), null);
-        services.sort(Comparator.comparing(ConfigurableInstanceFactoryPostProcessor::getClass, OrderedComparator.INSTANCE));
-        return services;
-    }
 }