public class io.vertx.spi.cluster.hazelcast.ConfigUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.spi.cluster.hazelcast.ConfigUtil
  super_class: java.lang.Object
{
  private static final io.vertx.core.impl.logging.Logger log;
    descriptor: Lio/vertx/core/impl/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String DEFAULT_CONFIG_FILE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "default-cluster.xml"

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 31
            ldc Lio/vertx/spi/cluster/hazelcast/ConfigUtil;
            invokestatic io.vertx.core.impl.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/impl/logging/Logger;
            putstatic io.vertx.spi.cluster.hazelcast.ConfigUtil.log:Lio/vertx/core/impl/logging/Logger;
         1: .line 35
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static com.hazelcast.config.Config loadConfig();
    descriptor: ()Lcom/hazelcast/config/Config;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=0
         0: .line 50
            aconst_null
            astore 0 /* cfg */
        start local 0 // com.hazelcast.config.Config cfg
         1: .line 51
            aconst_null
            astore 1
            aconst_null
            astore 2
         2: invokestatic io.vertx.spi.cluster.hazelcast.ConfigUtil.getConfigStream:()Ljava/io/InputStream;
            astore 3 /* is */
        start local 3 // java.io.InputStream is
         3: .line 52
            new java.io.BufferedInputStream
            dup
            aload 3 /* is */
            invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
            astore 4 /* bis */
        start local 4 // java.io.InputStream bis
         4: .line 53
            new com.hazelcast.config.XmlConfigBuilder
            dup
            aload 4 /* bis */
            invokespecial com.hazelcast.config.XmlConfigBuilder.<init>:(Ljava/io/InputStream;)V
            invokevirtual com.hazelcast.config.XmlConfigBuilder.build:()Lcom/hazelcast/config/Config;
            astore 0 /* cfg */
         5: .line 54
            aload 4 /* bis */
            ifnull 8
            aload 4 /* bis */
            invokevirtual java.io.InputStream.close:()V
            goto 8
      StackMap locals: com.hazelcast.config.Config java.lang.Throwable java.lang.Throwable java.io.InputStream java.io.InputStream
      StackMap stack: java.lang.Throwable
         6: astore 1
            aload 4 /* bis */
            ifnull 7
            aload 4 /* bis */
            invokevirtual java.io.InputStream.close:()V
        end local 4 // java.io.InputStream bis
      StackMap locals:
      StackMap stack:
         7: aload 1
            athrow
      StackMap locals:
      StackMap stack:
         8: aload 3 /* is */
            ifnull 18
            aload 3 /* is */
            invokevirtual java.io.InputStream.close:()V
            goto 18
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 2
            aload 1
            ifnonnull 10
            aload 2
            astore 1
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 1
            aload 2
            if_acmpeq 11
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 3 /* is */
            ifnull 12
            aload 3 /* is */
            invokevirtual java.io.InputStream.close:()V
        end local 3 // java.io.InputStream is
      StackMap locals:
      StackMap stack:
        12: aload 1
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 2
            aload 1
            ifnonnull 14
            aload 2
            astore 1
            goto 15
      StackMap locals:
      StackMap stack:
        14: aload 1
            aload 2
            if_acmpeq 15
            aload 1
            aload 2
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        15: aload 1
            athrow
      StackMap locals: com.hazelcast.config.Config
      StackMap stack: java.io.IOException
        16: astore 1 /* ex */
        start local 1 // java.io.IOException ex
        17: .line 55
            getstatic io.vertx.spi.cluster.hazelcast.ConfigUtil.log:Lio/vertx/core/impl/logging/Logger;
            ldc "Failed to read config"
            aload 1 /* ex */
            invokeinterface io.vertx.core.impl.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 1 // java.io.IOException ex
        18: .line 57
      StackMap locals:
      StackMap stack:
            aload 0 /* cfg */
            areturn
        end local 0 // com.hazelcast.config.Config cfg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1   19     0   cfg  Lcom/hazelcast/config/Config;
            3   12     3    is  Ljava/io/InputStream;
            4    7     4   bis  Ljava/io/InputStream;
           17   18     1    ex  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           4     5       6  any
           3     8       9  any
           2    13      13  any
           1    16      16  Class java.io.IOException

  private static java.io.InputStream getConfigStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 61
            invokestatic io.vertx.spi.cluster.hazelcast.ConfigUtil.getConfigStreamFromSystemProperty:()Ljava/io/InputStream;
            astore 0 /* is */
        start local 0 // java.io.InputStream is
         1: .line 62
            aload 0 /* is */
            ifnonnull 3
         2: .line 63
            ldc "cluster.xml"
            ldc "default-cluster.xml"
            invokestatic io.vertx.spi.cluster.hazelcast.ConfigUtil.getConfigStreamFromClasspath:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
            astore 0 /* is */
         3: .line 65
      StackMap locals: java.io.InputStream
      StackMap stack:
            aload 0 /* is */
            areturn
        end local 0 // java.io.InputStream is
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0    is  Ljava/io/InputStream;

  private static java.io.InputStream getConfigStreamFromSystemProperty();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=0
         0: .line 69
            ldc "vertx.hazelcast.config"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 0 /* configProp */
        start local 0 // java.lang.String configProp
         1: .line 70
            aconst_null
            astore 1 /* is */
        start local 1 // java.io.InputStream is
         2: .line 71
            aload 0 /* configProp */
            ifnull 13
         3: .line 72
            aload 0 /* configProp */
            ldc "classpath:"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 5
         4: .line 73
            aload 0 /* configProp */
            ldc "classpath:"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            ldc "cluster.xml"
            invokestatic io.vertx.spi.cluster.hazelcast.ConfigUtil.getConfigStreamFromClasspath:(Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
            areturn
         5: .line 75
      StackMap locals: java.lang.String java.io.InputStream
      StackMap stack:
            new java.io.File
            dup
            aload 0 /* configProp */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            astore 2 /* cfgFile */
        start local 2 // java.io.File cfgFile
         6: .line 76
            aload 2 /* cfgFile */
            invokevirtual java.io.File.exists:()Z
            ifeq 13
         7: .line 78
            new java.io.FileInputStream
            dup
            aload 2 /* cfgFile */
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            astore 1 /* is */
         8: .line 79
            goto 13
      StackMap locals: java.lang.String java.io.InputStream java.io.File
      StackMap stack: java.io.FileNotFoundException
         9: pop
        10: .line 80
            getstatic io.vertx.spi.cluster.hazelcast.ConfigUtil.log:Lio/vertx/core/impl/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Failed to open file '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* configProp */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' defined in 'vertx.hazelcast.config'. Continuing "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 81
            ldc "classpath search for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "cluster.xml"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 80
            invokeinterface io.vertx.core.impl.logging.Logger.warn:(Ljava/lang/Object;)V
        end local 2 // java.io.File cfgFile
        13: .line 85
      StackMap locals:
      StackMap stack:
            aload 1 /* is */
            areturn
        end local 1 // java.io.InputStream is
        end local 0 // java.lang.String configProp
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            1   14     0  configProp  Ljava/lang/String;
            2   14     1          is  Ljava/io/InputStream;
            6   13     2     cfgFile  Ljava/io/File;
      Exception table:
        from    to  target  type
           7     8       9  Class java.io.FileNotFoundException

  private static java.io.InputStream getConfigStreamFromClasspath(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // java.lang.String configFile
        start local 1 // java.lang.String defaultConfig
         0: .line 89
            aconst_null
            astore 2 /* is */
        start local 2 // java.io.InputStream is
         1: .line 90
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* ctxClsLoader */
        start local 3 // java.lang.ClassLoader ctxClsLoader
         2: .line 91
            aload 3 /* ctxClsLoader */
            ifnull 4
         3: .line 92
            aload 3 /* ctxClsLoader */
            aload 0 /* configFile */
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* is */
         4: .line 94
      StackMap locals: java.io.InputStream java.lang.ClassLoader
      StackMap stack:
            aload 2 /* is */
            ifnonnull 8
         5: .line 95
            ldc Lio/vertx/spi/cluster/hazelcast/ConfigUtil;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aload 0 /* configFile */
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* is */
         6: .line 96
            aload 2 /* is */
            ifnonnull 8
         7: .line 97
            ldc Lio/vertx/spi/cluster/hazelcast/ConfigUtil;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aload 1 /* defaultConfig */
            invokevirtual java.lang.ClassLoader.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            astore 2 /* is */
         8: .line 100
      StackMap locals:
      StackMap stack:
            aload 2 /* is */
            areturn
        end local 3 // java.lang.ClassLoader ctxClsLoader
        end local 2 // java.io.InputStream is
        end local 1 // java.lang.String defaultConfig
        end local 0 // java.lang.String configFile
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0     configFile  Ljava/lang/String;
            0    9     1  defaultConfig  Ljava/lang/String;
            1    9     2             is  Ljava/io/InputStream;
            2    9     3   ctxClsLoader  Ljava/lang/ClassLoader;
    MethodParameters:
               Name  Flags
      configFile     
      defaultConfig  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.spi.cluster.hazelcast.ConfigUtil this
         0: .line 103
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 105
            return
        end local 0 // io.vertx.spi.cluster.hazelcast.ConfigUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/spi/cluster/hazelcast/ConfigUtil;
}
SourceFile: "ConfigUtil.java"