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

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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/jdbc/spi/impl/BoneCPDataSourceProvider;

  private static void mergeConfig(com.jolbox.bonecp.BoneCPConfig, io.vertx.core.json.JsonObject);
    descriptor: (Lcom/jolbox/bonecp/BoneCPConfig;Lio/vertx/core/json/JsonObject;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // com.jolbox.bonecp.BoneCPConfig config
        start local 1 // io.vertx.core.json.JsonObject json
         0: .line 46
            aload 1 /* json */
            invokevirtual io.vertx.core.json.JsonObject.iterator:()Ljava/util/Iterator;
            astore 3
            goto 13
      StackMap locals: com.jolbox.bonecp.BoneCPConfig io.vertx.core.json.JsonObject top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         2: .line 47
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* name */
        start local 4 // java.lang.String name
         3: .line 49
            ldc "provider_class"
            aload 4 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 50
            goto 13
         5: .line 53
      StackMap locals: com.jolbox.bonecp.BoneCPConfig io.vertx.core.json.JsonObject java.util.Map$Entry java.util.Iterator java.lang.String
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "set"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* name */
            iconst_0
            iconst_1
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* name */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* mName */
        start local 5 // java.lang.String mName
         6: .line 55
            ldc Lcom/jolbox/bonecp/BoneCPConfig;
            aload 5 /* mName */
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 6 /* method */
        start local 6 // java.lang.reflect.Method method
         7: .line 56
            aload 6 /* method */
            aload 0 /* config */
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 6 // java.lang.reflect.Method method
         8: .line 57
            goto 13
      StackMap locals: com.jolbox.bonecp.BoneCPConfig io.vertx.core.json.JsonObject java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String
      StackMap stack: java.lang.NoSuchMethodException
         9: pop
        10: .line 59
            getstatic io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider.log:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "no such property: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
            goto 13
        11: .line 60
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 6 /* e */
        start local 6 // java.lang.ReflectiveOperationException e
        12: .line 61
            new java.lang.RuntimeException
            dup
            aload 6 /* e */
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.ReflectiveOperationException e
        end local 5 // java.lang.String mName
        end local 4 // java.lang.String name
        end local 2 // java.util.Map$Entry entry
        13: .line 46
      StackMap locals: com.jolbox.bonecp.BoneCPConfig io.vertx.core.json.JsonObject top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        14: .line 64
            return
        end local 1 // io.vertx.core.json.JsonObject json
        end local 0 // com.jolbox.bonecp.BoneCPConfig config
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0  config  Lcom/jolbox/bonecp/BoneCPConfig;
            0   15     1    json  Lio/vertx/core/json/JsonObject;
            2   13     2   entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
            3   13     4    name  Ljava/lang/String;
            6   13     5   mName  Ljava/lang/String;
            7    8     6  method  Ljava/lang/reflect/Method;
           12   13     6       e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           6     8       9  Class java.lang.NoSuchMethodException
           6     8      11  Class java.lang.reflect.InvocationTargetException
           6     8      11  Class java.lang.IllegalAccessException
    MethodParameters:
        Name  Flags
      config  
      json    

  private java.lang.ClassLoader getClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
         0: .line 67
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* tccl */
        start local 1 // java.lang.ClassLoader tccl
         1: .line 68
            aload 1 /* tccl */
            ifnonnull 2
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            goto 3
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
         2: aload 1 /* tccl */
      StackMap locals:
      StackMap stack: java.lang.ClassLoader
         3: areturn
        end local 1 // java.lang.ClassLoader tccl
        end local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/ext/jdbc/spi/impl/BoneCPDataSourceProvider;
            1    4     1  tccl  Ljava/lang/ClassLoader;

  public javax.sql.DataSource getDataSource(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Ljavax/sql/DataSource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
        start local 1 // io.vertx.core.json.JsonObject config
         0: .line 73
            new com.jolbox.bonecp.BoneCPConfig
            dup
            invokespecial com.jolbox.bonecp.BoneCPConfig.<init>:()V
            astore 2 /* boneCPConfig */
        start local 2 // com.jolbox.bonecp.BoneCPConfig boneCPConfig
         1: .line 74
            aload 2 /* boneCPConfig */
            aload 1 /* config */
            invokestatic io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider.mergeConfig:(Lcom/jolbox/bonecp/BoneCPConfig;Lio/vertx/core/json/JsonObject;)V
         2: .line 79
            aload 2 /* boneCPConfig */
            aload 0 /* this */
            invokevirtual io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider.getClassLoader:()Ljava/lang/ClassLoader;
            invokevirtual com.jolbox.bonecp.BoneCPConfig.setClassLoader:(Ljava/lang/ClassLoader;)V
         3: .line 81
            new com.jolbox.bonecp.BoneCPDataSource
            dup
            aload 2 /* boneCPConfig */
            invokespecial com.jolbox.bonecp.BoneCPDataSource.<init>:(Lcom/jolbox/bonecp/BoneCPConfig;)V
            areturn
        end local 2 // com.jolbox.bonecp.BoneCPConfig boneCPConfig
        end local 1 // io.vertx.core.json.JsonObject config
        end local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    4     0          this  Lio/vertx/ext/jdbc/spi/impl/BoneCPDataSourceProvider;
            0    4     1        config  Lio/vertx/core/json/JsonObject;
            1    4     2  boneCPConfig  Lcom/jolbox/bonecp/BoneCPConfig;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
        Name  Flags
      config  

  public int maximumPoolSize(javax.sql.DataSource, io.vertx.core.json.JsonObject);
    descriptor: (Ljavax/sql/DataSource;Lio/vertx/core/json/JsonObject;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
        start local 1 // javax.sql.DataSource dataSource
        start local 2 // io.vertx.core.json.JsonObject config
         0: .line 86
            aload 1 /* dataSource */
            instanceof com.jolbox.bonecp.BoneCPDataSource
            ifeq 3
         1: .line 87
            aload 1 /* dataSource */
            checkcast com.jolbox.bonecp.BoneCPDataSource
            invokevirtual com.jolbox.bonecp.BoneCPDataSource.getPool:()Lcom/jolbox/bonecp/BoneCP;
            invokevirtual com.jolbox.bonecp.BoneCP.getConfig:()Lcom/jolbox/bonecp/BoneCPConfig;
            astore 3 /* cfg */
        start local 3 // com.jolbox.bonecp.BoneCPConfig cfg
         2: .line 88
            aload 3 /* cfg */
            invokevirtual com.jolbox.bonecp.BoneCPConfig.getMaxConnectionsPerPartition:()I
            aload 3 /* cfg */
            invokevirtual com.jolbox.bonecp.BoneCPConfig.getPartitionCount:()I
            imul
            ireturn
        end local 3 // com.jolbox.bonecp.BoneCPConfig cfg
         3: .line 90
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 2 // io.vertx.core.json.JsonObject config
        end local 1 // javax.sql.DataSource dataSource
        end local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/ext/jdbc/spi/impl/BoneCPDataSourceProvider;
            0    4     1  dataSource  Ljavax/sql/DataSource;
            0    4     2      config  Lio/vertx/core/json/JsonObject;
            2    3     3         cfg  Lcom/jolbox/bonecp/BoneCPConfig;
    MethodParameters:
            Name  Flags
      dataSource  
      config      

  public void close(javax.sql.DataSource);
    descriptor: (Ljavax/sql/DataSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
        start local 1 // javax.sql.DataSource dataSource
         0: .line 95
            aload 1 /* dataSource */
            instanceof com.jolbox.bonecp.BoneCPDataSource
            ifeq 2
         1: .line 96
            aload 1 /* dataSource */
            checkcast com.jolbox.bonecp.BoneCPDataSource
            invokevirtual com.jolbox.bonecp.BoneCPDataSource.close:()V
         2: .line 98
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.sql.DataSource dataSource
        end local 0 // io.vertx.ext.jdbc.spi.impl.BoneCPDataSourceProvider this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lio/vertx/ext/jdbc/spi/impl/BoneCPDataSourceProvider;
            0    3     1  dataSource  Ljavax/sql/DataSource;
    Exceptions:
      throws java.sql.SQLException
    MethodParameters:
            Name  Flags
      dataSource  
}
SourceFile: "BoneCPDataSourceProvider.java"
InnerClasses:
  public abstract Entry = java.util.Map$Entry of java.util.Map
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()