public abstract class io.dropwizard.hibernate.HibernateBundle<T extends io.dropwizard.Configuration> implements io.dropwizard.ConfiguredBundle<T>, io.dropwizard.db.DatabaseConfiguration<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.dropwizard.hibernate.HibernateBundle
  super_class: java.lang.Object
{
  public static final java.lang.String DEFAULT_NAME;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "hibernate"

  private org.hibernate.SessionFactory sessionFactory;
    descriptor: Lorg/hibernate/SessionFactory;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      javax.annotation.Nullable()

  private boolean lazyLoadingEnabled;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final com.google.common.collect.ImmutableList<java.lang.Class<?>> entities;
    descriptor: Lcom/google/common/collect/ImmutableList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/google/common/collect/ImmutableList<Ljava/lang/Class<*>;>;

  private final io.dropwizard.hibernate.SessionFactoryFactory sessionFactoryFactory;
    descriptor: Lio/dropwizard/hibernate/SessionFactoryFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected void <init>(java.lang.Class<?>, java.lang.Class<?>[]);
    descriptor: (Ljava/lang/Class;[Ljava/lang/Class;)V
    flags: (0x0084) ACC_PROTECTED, ACC_VARARGS
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
        start local 1 // java.lang.Class entity
        start local 2 // java.lang.Class[] entities
         0: .line 30
            aload 0 /* this */
            invokestatic com.google.common.collect.ImmutableList.builder:()Lcom/google/common/collect/ImmutableList$Builder;
            aload 1 /* entity */
            invokevirtual com.google.common.collect.ImmutableList$Builder.add:(Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList$Builder;
            aload 2 /* entities */
            invokevirtual com.google.common.collect.ImmutableList$Builder.add:([Ljava/lang/Object;)Lcom/google/common/collect/ImmutableList$Builder;
            invokevirtual com.google.common.collect.ImmutableList$Builder.build:()Lcom/google/common/collect/ImmutableList;
         1: .line 31
            new io.dropwizard.hibernate.SessionFactoryFactory
            dup
            invokespecial io.dropwizard.hibernate.SessionFactoryFactory.<init>:()V
            invokespecial io.dropwizard.hibernate.HibernateBundle.<init>:(Lcom/google/common/collect/ImmutableList;Lio/dropwizard/hibernate/SessionFactoryFactory;)V
         2: .line 32
            return
        end local 2 // java.lang.Class[] entities
        end local 1 // java.lang.Class entity
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;
            0    3     1    entity  Ljava/lang/Class<*>;
            0    3     2  entities  [Ljava/lang/Class;
    Signature: (Ljava/lang/Class<*>;[Ljava/lang/Class<*>;)V
    MethodParameters:
          Name  Flags
      entity    
      entities  

  protected void <init>(com.google.common.collect.ImmutableList<java.lang.Class<?>>, io.dropwizard.hibernate.SessionFactoryFactory);
    descriptor: (Lcom/google/common/collect/ImmutableList;Lio/dropwizard/hibernate/SessionFactoryFactory;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
        start local 1 // com.google.common.collect.ImmutableList entities
        start local 2 // io.dropwizard.hibernate.SessionFactoryFactory sessionFactoryFactory
         0: .line 34
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 24
            aload 0 /* this */
            iconst_1
            putfield io.dropwizard.hibernate.HibernateBundle.lazyLoadingEnabled:Z
         2: .line 36
            aload 0 /* this */
            aload 1 /* entities */
            putfield io.dropwizard.hibernate.HibernateBundle.entities:Lcom/google/common/collect/ImmutableList;
         3: .line 37
            aload 0 /* this */
            aload 2 /* sessionFactoryFactory */
            putfield io.dropwizard.hibernate.HibernateBundle.sessionFactoryFactory:Lio/dropwizard/hibernate/SessionFactoryFactory;
         4: .line 38
            return
        end local 2 // io.dropwizard.hibernate.SessionFactoryFactory sessionFactoryFactory
        end local 1 // com.google.common.collect.ImmutableList entities
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    5     0                   this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;
            0    5     1               entities  Lcom/google/common/collect/ImmutableList<Ljava/lang/Class<*>;>;
            0    5     2  sessionFactoryFactory  Lio/dropwizard/hibernate/SessionFactoryFactory;
    Signature: (Lcom/google/common/collect/ImmutableList<Ljava/lang/Class<*>;>;Lio/dropwizard/hibernate/SessionFactoryFactory;)V
    MethodParameters:
                       Name  Flags
      entities               
      sessionFactoryFactory  

  public final void initialize(io.dropwizard.setup.Bootstrap<?>);
    descriptor: (Lio/dropwizard/setup/Bootstrap;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
        start local 1 // io.dropwizard.setup.Bootstrap bootstrap
         0: .line 42
            aload 1 /* bootstrap */
            invokevirtual io.dropwizard.setup.Bootstrap.getObjectMapper:()Lcom/fasterxml/jackson/databind/ObjectMapper;
            aload 0 /* this */
            invokevirtual io.dropwizard.hibernate.HibernateBundle.createHibernate5Module:()Lcom/fasterxml/jackson/datatype/hibernate5/Hibernate5Module;
            invokevirtual com.fasterxml.jackson.databind.ObjectMapper.registerModule:(Lcom/fasterxml/jackson/databind/Module;)Lcom/fasterxml/jackson/databind/ObjectMapper;
            pop
         1: .line 43
            return
        end local 1 // io.dropwizard.setup.Bootstrap bootstrap
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;
            0    2     1  bootstrap  Lio/dropwizard/setup/Bootstrap<*>;
    Signature: (Lio/dropwizard/setup/Bootstrap<*>;)V
    MethodParameters:
           Name  Flags
      bootstrap  

  protected com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module createHibernate5Module();
    descriptor: ()Lcom/fasterxml/jackson/datatype/hibernate5/Hibernate5Module;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
         0: .line 49
            new com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module
            dup
            invokespecial com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module.<init>:()V
            astore 1 /* module */
        start local 1 // com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module module
         1: .line 50
            aload 0 /* this */
            getfield io.dropwizard.hibernate.HibernateBundle.lazyLoadingEnabled:Z
            ifeq 3
         2: .line 51
            aload 1 /* module */
            getstatic com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module$Feature.FORCE_LAZY_LOADING:Lcom/fasterxml/jackson/datatype/hibernate5/Hibernate5Module$Feature;
            invokevirtual com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module.enable:(Lcom/fasterxml/jackson/datatype/hibernate5/Hibernate5Module$Feature;)Lcom/fasterxml/jackson/datatype/hibernate5/Hibernate5Module;
            pop
         3: .line 53
      StackMap locals: com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module
      StackMap stack:
            aload 1 /* module */
            areturn
        end local 1 // com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module module
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;
            1    4     1  module  Lcom/fasterxml/jackson/datatype/hibernate5/Hibernate5Module;

  protected java.lang.String name();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
         0: .line 61
            ldc "hibernate"
            areturn
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;

  public final void run(T, io.dropwizard.setup.Environment);
    descriptor: (Lio/dropwizard/Configuration;Lio/dropwizard/setup/Environment;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
        start local 1 // io.dropwizard.Configuration configuration
        start local 2 // io.dropwizard.setup.Environment environment
         0: .line 66
            aload 0 /* this */
            aload 1 /* configuration */
            invokevirtual io.dropwizard.hibernate.HibernateBundle.getDataSourceFactory:(Lio/dropwizard/Configuration;)Lio/dropwizard/db/PooledDataSourceFactory;
            astore 3 /* dbConfig */
        start local 3 // io.dropwizard.db.PooledDataSourceFactory dbConfig
         1: .line 67
            aload 0 /* this */
            aload 0 /* this */
            getfield io.dropwizard.hibernate.HibernateBundle.sessionFactoryFactory:Lio/dropwizard/hibernate/SessionFactoryFactory;
            aload 0 /* this */
            aload 2 /* environment */
            aload 3 /* dbConfig */
         2: .line 68
            aload 0 /* this */
            getfield io.dropwizard.hibernate.HibernateBundle.entities:Lcom/google/common/collect/ImmutableList;
            aload 0 /* this */
            invokevirtual io.dropwizard.hibernate.HibernateBundle.name:()Ljava/lang/String;
         3: .line 67
            invokevirtual io.dropwizard.hibernate.SessionFactoryFactory.build:(Lio/dropwizard/hibernate/HibernateBundle;Lio/dropwizard/setup/Environment;Lio/dropwizard/db/PooledDataSourceFactory;Ljava/util/List;Ljava/lang/String;)Lorg/hibernate/SessionFactory;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.SessionFactory
            putfield io.dropwizard.hibernate.HibernateBundle.sessionFactory:Lorg/hibernate/SessionFactory;
         4: .line 69
            aload 0 /* this */
            aload 2 /* environment */
            invokevirtual io.dropwizard.hibernate.HibernateBundle.registerUnitOfWorkListenerIfAbsent:(Lio/dropwizard/setup/Environment;)Lio/dropwizard/hibernate/UnitOfWorkApplicationListener;
            aload 0 /* this */
            invokevirtual io.dropwizard.hibernate.HibernateBundle.name:()Ljava/lang/String;
            aload 0 /* this */
            getfield io.dropwizard.hibernate.HibernateBundle.sessionFactory:Lorg/hibernate/SessionFactory;
            invokevirtual io.dropwizard.hibernate.UnitOfWorkApplicationListener.registerSessionFactory:(Ljava/lang/String;Lorg/hibernate/SessionFactory;)V
         5: .line 70
            aload 2 /* environment */
            invokevirtual io.dropwizard.setup.Environment.healthChecks:()Lcom/codahale/metrics/health/HealthCheckRegistry;
            aload 0 /* this */
            invokevirtual io.dropwizard.hibernate.HibernateBundle.name:()Ljava/lang/String;
         6: .line 71
            new io.dropwizard.hibernate.SessionFactoryHealthCheck
            dup
         7: .line 72
            aload 2 /* environment */
            invokevirtual io.dropwizard.setup.Environment.getHealthCheckExecutorService:()Ljava/util/concurrent/ExecutorService;
         8: .line 73
            aload 3 /* dbConfig */
            invokeinterface io.dropwizard.db.PooledDataSourceFactory.getValidationQueryTimeout:()Ljava/util/Optional;
            ldc 5
            invokestatic io.dropwizard.util.Duration.seconds:(J)Lio/dropwizard/util/Duration;
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.dropwizard.util.Duration
         9: .line 74
            aload 0 /* this */
            getfield io.dropwizard.hibernate.HibernateBundle.sessionFactory:Lorg/hibernate/SessionFactory;
        10: .line 75
            aload 3 /* dbConfig */
            invokeinterface io.dropwizard.db.PooledDataSourceFactory.getValidationQuery:()Ljava/lang/String;
        11: .line 71
            invokespecial io.dropwizard.hibernate.SessionFactoryHealthCheck.<init>:(Ljava/util/concurrent/ExecutorService;Lio/dropwizard/util/Duration;Lorg/hibernate/SessionFactory;Ljava/lang/String;)V
        12: .line 70
            invokevirtual com.codahale.metrics.health.HealthCheckRegistry.register:(Ljava/lang/String;Lcom/codahale/metrics/health/HealthCheck;)V
        13: .line 76
            return
        end local 3 // io.dropwizard.db.PooledDataSourceFactory dbConfig
        end local 2 // io.dropwizard.setup.Environment environment
        end local 1 // io.dropwizard.Configuration configuration
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   14     0           this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;
            0   14     1  configuration  TT;
            0   14     2    environment  Lio/dropwizard/setup/Environment;
            1   14     3       dbConfig  Lio/dropwizard/db/PooledDataSourceFactory;
    Exceptions:
      throws java.lang.Exception
    Signature: (TT;Lio/dropwizard/setup/Environment;)V
    MethodParameters:
               Name  Flags
      configuration  
      environment    

  private io.dropwizard.hibernate.UnitOfWorkApplicationListener registerUnitOfWorkListenerIfAbsent(io.dropwizard.setup.Environment);
    descriptor: (Lio/dropwizard/setup/Environment;)Lio/dropwizard/hibernate/UnitOfWorkApplicationListener;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
        start local 1 // io.dropwizard.setup.Environment environment
         0: .line 79
            aload 1 /* environment */
            invokevirtual io.dropwizard.setup.Environment.jersey:()Lio/dropwizard/jersey/setup/JerseyEnvironment;
            invokevirtual io.dropwizard.jersey.setup.JerseyEnvironment.getResourceConfig:()Lio/dropwizard/jersey/DropwizardResourceConfig;
            invokevirtual io.dropwizard.jersey.DropwizardResourceConfig.getSingletons:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: io.dropwizard.hibernate.HibernateBundle io.dropwizard.setup.Environment top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            astore 2 /* singleton */
        start local 2 // java.lang.Object singleton
         2: .line 80
            aload 2 /* singleton */
            instanceof io.dropwizard.hibernate.UnitOfWorkApplicationListener
            ifeq 4
         3: .line 81
            aload 2 /* singleton */
            checkcast io.dropwizard.hibernate.UnitOfWorkApplicationListener
            areturn
        end local 2 // java.lang.Object singleton
         4: .line 79
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 84
            new io.dropwizard.hibernate.UnitOfWorkApplicationListener
            dup
            invokespecial io.dropwizard.hibernate.UnitOfWorkApplicationListener.<init>:()V
            astore 2 /* listener */
        start local 2 // io.dropwizard.hibernate.UnitOfWorkApplicationListener listener
         6: .line 85
            aload 1 /* environment */
            invokevirtual io.dropwizard.setup.Environment.jersey:()Lio/dropwizard/jersey/setup/JerseyEnvironment;
            aload 2 /* listener */
            invokevirtual io.dropwizard.jersey.setup.JerseyEnvironment.register:(Ljava/lang/Object;)V
         7: .line 86
            aload 2 /* listener */
            areturn
        end local 2 // io.dropwizard.hibernate.UnitOfWorkApplicationListener listener
        end local 1 // io.dropwizard.setup.Environment environment
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    8     0         this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;
            0    8     1  environment  Lio/dropwizard/setup/Environment;
            2    4     2    singleton  Ljava/lang/Object;
            6    8     2     listener  Lio/dropwizard/hibernate/UnitOfWorkApplicationListener;
    MethodParameters:
             Name  Flags
      environment  

  public boolean isLazyLoadingEnabled();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
         0: .line 90
            aload 0 /* this */
            getfield io.dropwizard.hibernate.HibernateBundle.lazyLoadingEnabled:Z
            ireturn
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;

  public void setLazyLoadingEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
        start local 1 // boolean lazyLoadingEnabled
         0: .line 94
            aload 0 /* this */
            iload 1 /* lazyLoadingEnabled */
            putfield io.dropwizard.hibernate.HibernateBundle.lazyLoadingEnabled:Z
         1: .line 95
            return
        end local 1 // boolean lazyLoadingEnabled
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    2     0                this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;
            0    2     1  lazyLoadingEnabled  Z
    MethodParameters:
                    Name  Flags
      lazyLoadingEnabled  

  public org.hibernate.SessionFactory getSessionFactory();
    descriptor: ()Lorg/hibernate/SessionFactory;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
         0: .line 98
            aload 0 /* this */
            getfield io.dropwizard.hibernate.HibernateBundle.sessionFactory:Lorg/hibernate/SessionFactory;
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.hibernate.SessionFactory
            areturn
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;

  protected void configure(org.hibernate.cfg.Configuration);
    descriptor: (Lorg/hibernate/cfg/Configuration;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // io.dropwizard.hibernate.HibernateBundle this
        start local 1 // org.hibernate.cfg.Configuration configuration
         0: .line 102
            return
        end local 1 // org.hibernate.cfg.Configuration configuration
        end local 0 // io.dropwizard.hibernate.HibernateBundle this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lio/dropwizard/hibernate/HibernateBundle<TT;>;
            0    1     1  configuration  Lorg/hibernate/cfg/Configuration;
    MethodParameters:
               Name  Flags
      configuration  

  public void run(java.lang.Object, io.dropwizard.setup.Environment);
    descriptor: (Ljava/lang/Object;Lio/dropwizard/setup/Environment;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast io.dropwizard.Configuration
            aload 2
            invokevirtual io.dropwizard.hibernate.HibernateBundle.run:(Lio/dropwizard/Configuration;Lio/dropwizard/setup/Environment;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Exceptions:
      throws java.lang.Exception
}
Signature: <T:Lio/dropwizard/Configuration;>Ljava/lang/Object;Lio/dropwizard/ConfiguredBundle<TT;>;Lio/dropwizard/db/DatabaseConfiguration<TT;>;
SourceFile: "HibernateBundle.java"
InnerClasses:
  public final Feature = com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module$Feature of com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module
  public final Builder = com.google.common.collect.ImmutableList$Builder of com.google.common.collect.ImmutableList