public abstract class org.apache.logging.log4j.core.config.ConfigurationFactory extends org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.logging.log4j.core.config.ConfigurationFactory
  super_class: org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory
{
  public static final java.lang.String CONFIGURATION_FACTORY_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "log4j.configurationFactory"

  public static final java.lang.String CONFIGURATION_FILE_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "log4j.configurationFile"

  public static final java.lang.String CATEGORY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "ConfigurationFactory"

  protected static final org.apache.logging.log4j.Logger LOGGER;
    descriptor: Lorg/apache/logging/log4j/Logger;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  protected static final java.lang.String TEST_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "log4j2-test"

  protected static final java.lang.String DEFAULT_PREFIX;
    descriptor: Ljava/lang/String;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    ConstantValue: "log4j2"

  private static final java.lang.String CLASS_LOADER_SCHEME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "classloader"

  private static final java.lang.String CLASS_PATH_SCHEME;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "classpath"

  private static volatile java.util.List<org.apache.logging.log4j.core.config.ConfigurationFactory> factories;
    descriptor: Ljava/util/List;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
    Signature: Ljava/util/List<Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;

  private static org.apache.logging.log4j.core.config.ConfigurationFactory configFactory;
    descriptor: Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  protected final org.apache.logging.log4j.core.lookup.StrSubstitutor substitutor;
    descriptor: Lorg/apache/logging/log4j/core/lookup/StrSubstitutor;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private static final java.util.concurrent.locks.Lock LOCK;
    descriptor: Ljava/util/concurrent/locks/Lock;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 100
            invokestatic org.apache.logging.log4j.status.StatusLogger.getLogger:()Lorg/apache/logging/log4j/status/StatusLogger;
            putstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
         1: .line 122
            aconst_null
            putstatic org.apache.logging.log4j.core.config.ConfigurationFactory.factories:Ljava/util/List;
         2: .line 124
            new org.apache.logging.log4j.core.config.ConfigurationFactory$Factory
            dup
            invokespecial org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.<init>:()V
            putstatic org.apache.logging.log4j.core.config.ConfigurationFactory.configFactory:Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
         3: .line 128
            new java.util.concurrent.locks.ReentrantLock
            dup
            invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
            putstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOCK:Ljava/util/concurrent/locks/Lock;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
         0: .line 75
            aload 0 /* this */
            invokespecial org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory.<init>:()V
         1: .line 126
            aload 0 /* this */
            new org.apache.logging.log4j.core.lookup.StrSubstitutor
            dup
            new org.apache.logging.log4j.core.lookup.Interpolator
            dup
            invokespecial org.apache.logging.log4j.core.lookup.Interpolator.<init>:()V
            invokespecial org.apache.logging.log4j.core.lookup.StrSubstitutor.<init>:(Lorg/apache/logging/log4j/core/lookup/StrLookup;)V
            putfield org.apache.logging.log4j.core.config.ConfigurationFactory.substitutor:Lorg/apache/logging/log4j/core/lookup/StrSubstitutor;
         2: .line 77
            return
        end local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/logging/log4j/core/config/ConfigurationFactory;

  public static org.apache.logging.log4j.core.config.ConfigurationFactory getInstance();
    descriptor: ()Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=9, args_size=0
         0: .line 137
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.factories:Ljava/util/List;
            ifnonnull 29
         1: .line 138
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOCK:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.lock:()V
         2: .line 140
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.factories:Ljava/util/List;
            ifnonnull 28
         3: .line 141
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* list */
        start local 0 // java.util.List list
         4: .line 142
            invokestatic org.apache.logging.log4j.util.PropertiesUtil.getProperties:()Lorg/apache/logging/log4j/util/PropertiesUtil;
            ldc "log4j.configurationFactory"
            invokevirtual org.apache.logging.log4j.util.PropertiesUtil.getStringProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* factoryClass */
        start local 1 // java.lang.String factoryClass
         5: .line 143
            aload 1 /* factoryClass */
            ifnull 7
         6: .line 144
            aload 0 /* list */
            aload 1 /* factoryClass */
            invokestatic org.apache.logging.log4j.core.config.ConfigurationFactory.addFactory:(Ljava/util/Collection;Ljava/lang/String;)V
         7: .line 146
      StackMap locals: java.util.List java.lang.String
      StackMap stack:
            new org.apache.logging.log4j.core.config.plugins.util.PluginManager
            dup
            ldc "ConfigurationFactory"
            invokespecial org.apache.logging.log4j.core.config.plugins.util.PluginManager.<init>:(Ljava/lang/String;)V
            astore 2 /* manager */
        start local 2 // org.apache.logging.log4j.core.config.plugins.util.PluginManager manager
         8: .line 147
            aload 2 /* manager */
            invokevirtual org.apache.logging.log4j.core.config.plugins.util.PluginManager.collectPlugins:()V
         9: .line 148
            aload 2 /* manager */
            invokevirtual org.apache.logging.log4j.core.config.plugins.util.PluginManager.getPlugins:()Ljava/util/Map;
            astore 3 /* plugins */
        start local 3 // java.util.Map plugins
        10: .line 149
            new java.util.ArrayList
            dup
            aload 3 /* plugins */
            invokeinterface java.util.Map.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 4 /* ordered */
        start local 4 // java.util.List ordered
        11: .line 150
            aload 3 /* plugins */
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 6
            goto 17
      StackMap locals: java.util.List java.lang.String org.apache.logging.log4j.core.config.plugins.util.PluginManager java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
        12: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.apache.logging.log4j.core.config.plugins.util.PluginType
            astore 5 /* type */
        start local 5 // org.apache.logging.log4j.core.config.plugins.util.PluginType type
        13: .line 152
            aload 4 /* ordered */
            aload 5 /* type */
            invokevirtual org.apache.logging.log4j.core.config.plugins.util.PluginType.getPluginClass:()Ljava/lang/Class;
            ldc Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        14: .line 153
            goto 17
      StackMap locals: java.util.List java.lang.String org.apache.logging.log4j.core.config.plugins.util.PluginManager java.util.Map java.util.List org.apache.logging.log4j.core.config.plugins.util.PluginType java.util.Iterator
      StackMap stack: java.lang.Exception
        15: astore 7 /* ex */
        start local 7 // java.lang.Exception ex
        16: .line 154
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
            ldc "Unable to add class {}"
            aload 5 /* type */
            invokevirtual org.apache.logging.log4j.core.config.plugins.util.PluginType.getPluginClass:()Ljava/lang/Class;
            aload 7 /* ex */
            invokeinterface org.apache.logging.log4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 7 // java.lang.Exception ex
        end local 5 // org.apache.logging.log4j.core.config.plugins.util.PluginType type
        17: .line 150
      StackMap locals: java.util.List java.lang.String org.apache.logging.log4j.core.config.plugins.util.PluginManager java.util.Map java.util.List top java.util.Iterator
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        18: .line 157
            aload 4 /* ordered */
            invokestatic org.apache.logging.log4j.core.config.OrderComparator.getInstance:()Ljava/util/Comparator;
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
        19: .line 158
            aload 4 /* ordered */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6
            goto 22
      StackMap locals:
      StackMap stack:
        20: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Class
            astore 5 /* clazz */
        start local 5 // java.lang.Class clazz
        21: .line 159
            aload 0 /* list */
            aload 5 /* clazz */
            invokestatic org.apache.logging.log4j.core.config.ConfigurationFactory.addFactory:(Ljava/util/Collection;Ljava/lang/Class;)V
        end local 5 // java.lang.Class clazz
        22: .line 158
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 20
        23: .line 163
            aload 0 /* list */
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            putstatic org.apache.logging.log4j.core.config.ConfigurationFactory.factories:Ljava/util/List;
        end local 4 // java.util.List ordered
        end local 3 // java.util.Map plugins
        end local 2 // org.apache.logging.log4j.core.config.plugins.util.PluginManager manager
        end local 1 // java.lang.String factoryClass
        end local 0 // java.util.List list
        24: .line 165
            goto 28
      StackMap locals:
      StackMap stack: java.lang.Throwable
        25: astore 8
        26: .line 166
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOCK:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        27: .line 167
            aload 8
            athrow
        28: .line 166
      StackMap locals:
      StackMap stack:
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOCK:Ljava/util/concurrent/locks/Lock;
            invokeinterface java.util.concurrent.locks.Lock.unlock:()V
        29: .line 170
      StackMap locals:
      StackMap stack:
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
            ldc "Using configurationFactory {}"
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.configFactory:Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
            invokeinterface org.apache.logging.log4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
        30: .line 171
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.configFactory:Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
            areturn
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            4   24     0          list  Ljava/util/List<Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;
            5   24     1  factoryClass  Ljava/lang/String;
            8   24     2       manager  Lorg/apache/logging/log4j/core/config/plugins/util/PluginManager;
           10   24     3       plugins  Ljava/util/Map<Ljava/lang/String;Lorg/apache/logging/log4j/core/config/plugins/util/PluginType<*>;>;
           11   24     4       ordered  Ljava/util/List<Ljava/lang/Class<+Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;>;
           13   17     5          type  Lorg/apache/logging/log4j/core/config/plugins/util/PluginType<*>;
           16   17     7            ex  Ljava/lang/Exception;
           21   22     5         clazz  Ljava/lang/Class<+Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;
      Exception table:
        from    to  target  type
          13    14      15  Class java.lang.Exception
           2    25      25  any

  private static void addFactory(java.util.Collection<org.apache.logging.log4j.core.config.ConfigurationFactory>, java.lang.String);
    descriptor: (Ljava/util/Collection;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.util.Collection list
        start local 1 // java.lang.String factoryClass
         0: .line 176
            aload 0 /* list */
            aload 1 /* factoryClass */
            invokestatic org.apache.logging.log4j.util.LoaderUtil.loadClass:(Ljava/lang/String;)Ljava/lang/Class;
            ldc Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
            invokevirtual java.lang.Class.asSubclass:(Ljava/lang/Class;)Ljava/lang/Class;
            invokestatic org.apache.logging.log4j.core.config.ConfigurationFactory.addFactory:(Ljava/util/Collection;Ljava/lang/Class;)V
         1: .line 177
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         3: .line 178
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
            ldc "Unable to load class {}"
            aload 1 /* factoryClass */
            aload 2 /* ex */
            invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 2 // java.lang.Exception ex
         4: .line 180
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String factoryClass
        end local 0 // java.util.Collection list
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          list  Ljava/util/Collection<Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;
            0    5     1  factoryClass  Ljava/lang/String;
            3    4     2            ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Signature: (Ljava/util/Collection<Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;Ljava/lang/String;)V
    MethodParameters:
              Name  Flags
      list          final
      factoryClass  final

  private static void addFactory(java.util.Collection<org.apache.logging.log4j.core.config.ConfigurationFactory>, java.lang.Class<? extends org.apache.logging.log4j.core.config.ConfigurationFactory>);
    descriptor: (Ljava/util/Collection;Ljava/lang/Class;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.util.Collection list
        start local 1 // java.lang.Class factoryClass
         0: .line 185
            aload 0 /* list */
            aload 1 /* factoryClass */
            invokestatic org.apache.logging.log4j.core.util.ReflectionUtil.instantiate:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast org.apache.logging.log4j.core.config.ConfigurationFactory
            invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
            pop
         1: .line 186
            goto 4
      StackMap locals:
      StackMap stack: java.lang.Exception
         2: astore 2 /* ex */
        start local 2 // java.lang.Exception ex
         3: .line 187
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
            ldc "Unable to create instance of {}"
            aload 1 /* factoryClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 2 /* ex */
            invokeinterface org.apache.logging.log4j.Logger.error:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 2 // java.lang.Exception ex
         4: .line 189
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Class factoryClass
        end local 0 // java.util.Collection list
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          list  Ljava/util/Collection<Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;
            0    5     1  factoryClass  Ljava/lang/Class<+Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;
            3    4     2            ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Exception
    Signature: (Ljava/util/Collection<Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;Ljava/lang/Class<+Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;)V
    MethodParameters:
              Name  Flags
      list          final
      factoryClass  final

  public static void setConfigurationFactory(org.apache.logging.log4j.core.config.ConfigurationFactory);
    descriptor: (Lorg/apache/logging/log4j/core/config/ConfigurationFactory;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory factory
         0: .line 196
            aload 0 /* factory */
            putstatic org.apache.logging.log4j.core.config.ConfigurationFactory.configFactory:Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
         1: .line 197
            return
        end local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory factory
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0  factory  Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
    MethodParameters:
         Name  Flags
      factory  final

  public static void resetConfigurationFactory();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 204
            new org.apache.logging.log4j.core.config.ConfigurationFactory$Factory
            dup
            invokespecial org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.<init>:()V
            putstatic org.apache.logging.log4j.core.config.ConfigurationFactory.configFactory:Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
         1: .line 205
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void removeConfigurationFactory(org.apache.logging.log4j.core.config.ConfigurationFactory);
    descriptor: (Lorg/apache/logging/log4j/core/config/ConfigurationFactory;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory factory
         0: .line 212
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.configFactory:Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
            aload 0 /* factory */
            if_acmpne 2
         1: .line 213
            new org.apache.logging.log4j.core.config.ConfigurationFactory$Factory
            dup
            invokespecial org.apache.logging.log4j.core.config.ConfigurationFactory$Factory.<init>:()V
            putstatic org.apache.logging.log4j.core.config.ConfigurationFactory.configFactory:Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
         2: .line 215
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory factory
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  factory  Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
    MethodParameters:
         Name  Flags
      factory  final

  protected abstract java.lang.String[] getSupportedTypes();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected boolean isActive();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
         0: .line 220
            iconst_1
            ireturn
        end local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/logging/log4j/core/config/ConfigurationFactory;

  public abstract org.apache.logging.log4j.core.config.Configuration getConfiguration(org.apache.logging.log4j.core.LoggerContext, org.apache.logging.log4j.core.config.ConfigurationSource);
    descriptor: (Lorg/apache/logging/log4j/core/LoggerContext;Lorg/apache/logging/log4j/core/config/ConfigurationSource;)Lorg/apache/logging/log4j/core/config/Configuration;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
               Name  Flags
      loggerContext  final
      source         

  public org.apache.logging.log4j.core.config.Configuration getConfiguration(org.apache.logging.log4j.core.LoggerContext, java.lang.String, java.net.URI);
    descriptor: (Lorg/apache/logging/log4j/core/LoggerContext;Ljava/lang/String;Ljava/net/URI;)Lorg/apache/logging/log4j/core/config/Configuration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
        start local 1 // org.apache.logging.log4j.core.LoggerContext loggerContext
        start local 2 // java.lang.String name
        start local 3 // java.net.URI configLocation
         0: .line 233
            aload 0 /* this */
            invokevirtual org.apache.logging.log4j.core.config.ConfigurationFactory.isActive:()Z
            ifne 2
         1: .line 234
            aconst_null
            areturn
         2: .line 236
      StackMap locals:
      StackMap stack:
            aload 3 /* configLocation */
            ifnull 6
         3: .line 237
            aload 3 /* configLocation */
            invokestatic org.apache.logging.log4j.core.config.ConfigurationSource.fromUri:(Ljava/net/URI;)Lorg/apache/logging/log4j/core/config/ConfigurationSource;
            astore 4 /* source */
        start local 4 // org.apache.logging.log4j.core.config.ConfigurationSource source
         4: .line 238
            aload 4 /* source */
            ifnull 6
         5: .line 239
            aload 0 /* this */
            aload 1 /* loggerContext */
            aload 4 /* source */
            invokevirtual org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration:(Lorg/apache/logging/log4j/core/LoggerContext;Lorg/apache/logging/log4j/core/config/ConfigurationSource;)Lorg/apache/logging/log4j/core/config/Configuration;
            areturn
        end local 4 // org.apache.logging.log4j.core.config.ConfigurationSource source
         6: .line 242
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // java.net.URI configLocation
        end local 2 // java.lang.String name
        end local 1 // org.apache.logging.log4j.core.LoggerContext loggerContext
        end local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
            0    7     1   loggerContext  Lorg/apache/logging/log4j/core/LoggerContext;
            0    7     2            name  Ljava/lang/String;
            0    7     3  configLocation  Ljava/net/URI;
            4    6     4          source  Lorg/apache/logging/log4j/core/config/ConfigurationSource;
    MethodParameters:
                Name  Flags
      loggerContext   final
      name            final
      configLocation  final

  public org.apache.logging.log4j.core.config.Configuration getConfiguration(org.apache.logging.log4j.core.LoggerContext, java.lang.String, java.net.URI, java.lang.ClassLoader);
    descriptor: (Lorg/apache/logging/log4j/core/LoggerContext;Ljava/lang/String;Ljava/net/URI;Ljava/lang/ClassLoader;)Lorg/apache/logging/log4j/core/config/Configuration;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
        start local 1 // org.apache.logging.log4j.core.LoggerContext loggerContext
        start local 2 // java.lang.String name
        start local 3 // java.net.URI configLocation
        start local 4 // java.lang.ClassLoader loader
         0: .line 256
            aload 0 /* this */
            invokevirtual org.apache.logging.log4j.core.config.ConfigurationFactory.isActive:()Z
            ifne 2
         1: .line 257
            aconst_null
            areturn
         2: .line 259
      StackMap locals:
      StackMap stack:
            aload 4 /* loader */
            ifnonnull 4
         3: .line 260
            aload 0 /* this */
            aload 1 /* loggerContext */
            aload 2 /* name */
            aload 3 /* configLocation */
            invokevirtual org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration:(Lorg/apache/logging/log4j/core/LoggerContext;Ljava/lang/String;Ljava/net/URI;)Lorg/apache/logging/log4j/core/config/Configuration;
            areturn
         4: .line 262
      StackMap locals:
      StackMap stack:
            aload 3 /* configLocation */
            invokestatic org.apache.logging.log4j.core.config.ConfigurationFactory.isClassLoaderUri:(Ljava/net/URI;)Z
            ifeq 11
         5: .line 263
            aload 3 /* configLocation */
            invokestatic org.apache.logging.log4j.core.config.ConfigurationFactory.extractClassLoaderUriPath:(Ljava/net/URI;)Ljava/lang/String;
            astore 5 /* path */
        start local 5 // java.lang.String path
         6: .line 264
            aload 5 /* path */
            aload 4 /* loader */
            invokestatic org.apache.logging.log4j.core.config.ConfigurationSource.fromResource:(Ljava/lang/String;Ljava/lang/ClassLoader;)Lorg/apache/logging/log4j/core/config/ConfigurationSource;
            astore 6 /* source */
        start local 6 // org.apache.logging.log4j.core.config.ConfigurationSource source
         7: .line 265
            aload 6 /* source */
            ifnull 11
         8: .line 266
            aload 0 /* this */
            aload 1 /* loggerContext */
            aload 6 /* source */
            invokevirtual org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration:(Lorg/apache/logging/log4j/core/LoggerContext;Lorg/apache/logging/log4j/core/config/ConfigurationSource;)Lorg/apache/logging/log4j/core/config/Configuration;
            astore 7 /* configuration */
        start local 7 // org.apache.logging.log4j.core.config.Configuration configuration
         9: .line 267
            aload 7 /* configuration */
            ifnull 11
        10: .line 268
            aload 7 /* configuration */
            areturn
        end local 7 // org.apache.logging.log4j.core.config.Configuration configuration
        end local 6 // org.apache.logging.log4j.core.config.ConfigurationSource source
        end local 5 // java.lang.String path
        11: .line 272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* loggerContext */
            aload 2 /* name */
            aload 3 /* configLocation */
            invokevirtual org.apache.logging.log4j.core.config.ConfigurationFactory.getConfiguration:(Lorg/apache/logging/log4j/core/LoggerContext;Ljava/lang/String;Ljava/net/URI;)Lorg/apache/logging/log4j/core/config/Configuration;
            areturn
        end local 4 // java.lang.ClassLoader loader
        end local 3 // java.net.URI configLocation
        end local 2 // java.lang.String name
        end local 1 // org.apache.logging.log4j.core.LoggerContext loggerContext
        end local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   12     0            this  Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
            0   12     1   loggerContext  Lorg/apache/logging/log4j/core/LoggerContext;
            0   12     2            name  Ljava/lang/String;
            0   12     3  configLocation  Ljava/net/URI;
            0   12     4          loader  Ljava/lang/ClassLoader;
            6   11     5            path  Ljava/lang/String;
            7   11     6          source  Lorg/apache/logging/log4j/core/config/ConfigurationSource;
            9   11     7   configuration  Lorg/apache/logging/log4j/core/config/Configuration;
    MethodParameters:
                Name  Flags
      loggerContext   final
      name            final
      configLocation  final
      loader          final

  static boolean isClassLoaderUri(java.net.URI);
    descriptor: (Ljava/net/URI;)Z
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.net.URI uri
         0: .line 276
            aload 0 /* uri */
            ifnonnull 2
         1: .line 277
            iconst_0
            ireturn
         2: .line 279
      StackMap locals:
      StackMap stack:
            aload 0 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            astore 1 /* scheme */
        start local 1 // java.lang.String scheme
         3: .line 280
            aload 1 /* scheme */
            ifnull 4
            aload 1 /* scheme */
            ldc "classloader"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            aload 1 /* scheme */
            ldc "classpath"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            iconst_0
            ireturn
      StackMap locals: java.lang.String
      StackMap stack:
         4: iconst_1
            ireturn
        end local 1 // java.lang.String scheme
        end local 0 // java.net.URI uri
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0     uri  Ljava/net/URI;
            3    5     1  scheme  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      uri   final

  static java.lang.String extractClassLoaderUriPath(java.net.URI);
    descriptor: (Ljava/net/URI;)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.net.URI uri
         0: .line 284
            aload 0 /* uri */
            invokevirtual java.net.URI.getScheme:()Ljava/lang/String;
            ifnonnull 1
            aload 0 /* uri */
            invokevirtual java.net.URI.getPath:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* uri */
            invokevirtual java.net.URI.getSchemeSpecificPart:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // java.net.URI uri
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   uri  Ljava/net/URI;
    MethodParameters:
      Name  Flags
      uri   final

  protected org.apache.logging.log4j.core.config.ConfigurationSource getInputFromString(java.lang.String, java.lang.ClassLoader);
    descriptor: (Ljava/lang/String;Ljava/lang/ClassLoader;)Lorg/apache/logging/log4j/core/config/ConfigurationSource;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
        start local 1 // java.lang.String config
        start local 2 // java.lang.ClassLoader loader
         0: .line 295
            new java.net.URL
            dup
            aload 1 /* config */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            astore 3 /* url */
        start local 3 // java.net.URL url
         1: .line 296
            new org.apache.logging.log4j.core.config.ConfigurationSource
            dup
            aload 3 /* url */
            invokevirtual java.net.URL.openStream:()Ljava/io/InputStream;
            aload 3 /* url */
            invokevirtual java.net.URL.toURI:()Ljava/net/URI;
            invokestatic org.apache.logging.log4j.core.util.FileUtils.fileFromUri:(Ljava/net/URI;)Ljava/io/File;
            invokespecial org.apache.logging.log4j.core.config.ConfigurationSource.<init>:(Ljava/io/InputStream;Ljava/io/File;)V
         2: areturn
        end local 3 // java.net.URL url
         3: .line 297
      StackMap locals:
      StackMap stack: java.lang.Exception
            pop
         4: .line 298
            aload 1 /* config */
            aload 2 /* loader */
            invokestatic org.apache.logging.log4j.core.config.ConfigurationSource.fromResource:(Ljava/lang/String;Ljava/lang/ClassLoader;)Lorg/apache/logging/log4j/core/config/ConfigurationSource;
            astore 3 /* source */
        start local 3 // org.apache.logging.log4j.core.config.ConfigurationSource source
         5: .line 299
            aload 3 /* source */
            ifnonnull 11
         6: .line 301
            new java.io.File
            dup
            aload 1 /* config */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 4 /* file */
        start local 4 // java.io.File file
         7: .line 302
            new org.apache.logging.log4j.core.config.ConfigurationSource
            dup
            new java.io.FileInputStream
            dup
            aload 4 /* file */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            aload 4 /* file */
            invokespecial org.apache.logging.log4j.core.config.ConfigurationSource.<init>:(Ljava/io/InputStream;Ljava/io/File;)V
         8: areturn
        end local 4 // java.io.File file
         9: .line 303
      StackMap locals: org.apache.logging.log4j.core.config.ConfigurationFactory java.lang.String java.lang.ClassLoader org.apache.logging.log4j.core.config.ConfigurationSource
      StackMap stack: java.io.FileNotFoundException
            astore 4 /* fnfe */
        start local 4 // java.io.FileNotFoundException fnfe
        10: .line 305
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.LOGGER:Lorg/apache/logging/log4j/Logger;
            getstatic org.apache.logging.log4j.Level.DEBUG:Lorg/apache/logging/log4j/Level;
            aload 4 /* fnfe */
            invokeinterface org.apache.logging.log4j.Logger.catching:(Lorg/apache/logging/log4j/Level;Ljava/lang/Throwable;)V
        end local 4 // java.io.FileNotFoundException fnfe
        11: .line 308
      StackMap locals:
      StackMap stack:
            aload 3 /* source */
            areturn
        end local 3 // org.apache.logging.log4j.core.config.ConfigurationSource source
        end local 2 // java.lang.ClassLoader loader
        end local 1 // java.lang.String config
        end local 0 // org.apache.logging.log4j.core.config.ConfigurationFactory this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0    this  Lorg/apache/logging/log4j/core/config/ConfigurationFactory;
            0   12     1  config  Ljava/lang/String;
            0   12     2  loader  Ljava/lang/ClassLoader;
            1    3     3     url  Ljava/net/URL;
            5   12     3  source  Lorg/apache/logging/log4j/core/config/ConfigurationSource;
            7    9     4    file  Ljava/io/File;
           10   11     4    fnfe  Ljava/io/FileNotFoundException;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Exception
           6     8       9  Class java.io.FileNotFoundException
    MethodParameters:
        Name  Flags
      config  final
      loader  final

  static java.util.List<org.apache.logging.log4j.core.config.ConfigurationFactory> getFactories();
    descriptor: ()Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 492
            getstatic org.apache.logging.log4j.core.config.ConfigurationFactory.factories:Ljava/util/List;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: ()Ljava/util/List<Lorg/apache/logging/log4j/core/config/ConfigurationFactory;>;
}
SourceFile: "ConfigurationFactory.java"
NestMembers:
  org.apache.logging.log4j.core.config.ConfigurationFactory$Factory
InnerClasses:
  private Factory = org.apache.logging.log4j.core.config.ConfigurationFactory$Factory of org.apache.logging.log4j.core.config.ConfigurationFactory