public class io.vertx.core.impl.DeploymentManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.core.impl.DeploymentManager
  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

  private final io.vertx.core.impl.VertxInternal vertx;
    descriptor: Lio/vertx/core/impl/VertxInternal;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.String, io.vertx.core.impl.Deployment> deployments;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lio/vertx/core/impl/Deployment;>;

  private final java.util.Map<java.lang.String, io.vertx.core.impl.IsolatingClassLoader> classloaders;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Lio/vertx/core/impl/IsolatingClassLoader;>;

  private final java.util.Map<java.lang.String, java.util.List<io.vertx.core.spi.VerticleFactory>> verticleFactories;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/List<Lio/vertx/core/spi/VerticleFactory;>;>;

  private final java.util.List<io.vertx.core.spi.VerticleFactory> defaultFactories;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lio/vertx/core/spi/VerticleFactory;>;

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

  public void <init>(io.vertx.core.impl.VertxInternal);
    descriptor: (Lio/vertx/core/impl/VertxInternal;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // io.vertx.core.impl.VertxInternal vertx
         0: .line 68
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 63
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.vertx.core.impl.DeploymentManager.deployments:Ljava/util/Map;
         2: .line 64
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield io.vertx.core.impl.DeploymentManager.classloaders:Ljava/util/Map;
         3: .line 65
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield io.vertx.core.impl.DeploymentManager.verticleFactories:Ljava/util/Map;
         4: .line 66
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield io.vertx.core.impl.DeploymentManager.defaultFactories:Ljava/util/List;
         5: .line 69
            aload 0 /* this */
            aload 1 /* vertx */
            putfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
         6: .line 70
            aload 0 /* this */
            invokevirtual io.vertx.core.impl.DeploymentManager.loadVerticleFactories:()V
         7: .line 71
            return
        end local 1 // io.vertx.core.impl.VertxInternal vertx
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lio/vertx/core/impl/DeploymentManager;
            0    8     1  vertx  Lio/vertx/core/impl/VertxInternal;
    MethodParameters:
       Name  Flags
      vertx  

  private void loadVerticleFactories();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // io.vertx.core.impl.DeploymentManager this
         0: .line 74
            ldc Lio/vertx/core/spi/VerticleFactory;
            invokestatic io.vertx.core.ServiceHelper.loadFactories:(Ljava/lang/Class;)Ljava/util/Collection;
            astore 1 /* factories */
        start local 1 // java.util.Collection factories
         1: .line 75
            aload 1 /* factories */
            aload 0 /* this */
            invokedynamic accept(Lio/vertx/core/impl/DeploymentManager;)Ljava/util/function/Consumer;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/impl/DeploymentManager.registerVerticleFactory(Lio/vertx/core/spi/VerticleFactory;)V (5)
                  (Lio/vertx/core/spi/VerticleFactory;)V
            invokeinterface java.util.Collection.forEach:(Ljava/util/function/Consumer;)V
         2: .line 76
            new io.vertx.core.impl.JavaVerticleFactory
            dup
            invokespecial io.vertx.core.impl.JavaVerticleFactory.<init>:()V
            astore 3 /* defaultFactory */
        start local 3 // io.vertx.core.spi.VerticleFactory defaultFactory
         3: .line 77
            aload 3 /* defaultFactory */
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.spi.VerticleFactory.init:(Lio/vertx/core/Vertx;)V
         4: .line 78
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.defaultFactories:Ljava/util/List;
            aload 3 /* defaultFactory */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         5: .line 79
            return
        end local 3 // io.vertx.core.spi.VerticleFactory defaultFactory
        end local 1 // java.util.Collection factories
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lio/vertx/core/impl/DeploymentManager;
            1    6     1       factories  Ljava/util/Collection<Lio/vertx/core/spi/VerticleFactory;>;
            3    6     3  defaultFactory  Lio/vertx/core/spi/VerticleFactory;

  private java.lang.String generateDeploymentID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.impl.DeploymentManager this
         0: .line 82
            invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            areturn
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/impl/DeploymentManager;

  public void deployVerticle(java.util.function.Supplier<io.vertx.core.Verticle>, io.vertx.core.DeploymentOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>);
    descriptor: (Ljava/util/function/Supplier;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=11, args_size=4
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.util.function.Supplier verticleSupplier
        start local 2 // io.vertx.core.DeploymentOptions options
        start local 3 // io.vertx.core.Handler completionHandler
         0: .line 86
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getInstances:()I
            iconst_1
            if_icmpge 2
         1: .line 87
            new java.lang.IllegalArgumentException
            dup
            ldc "Can't specify < 1 instances to deploy"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 89
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.isMultiThreaded:()Z
            ifeq 4
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.isWorker:()Z
            ifne 4
         3: .line 90
            new java.lang.IllegalArgumentException
            dup
            ldc "If multi-threaded then must be worker too"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 92
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getExtraClasspath:()Ljava/util/List;
            ifnull 6
         5: .line 93
            new java.lang.IllegalArgumentException
            dup
            ldc "Can't specify extraClasspath for already created verticle"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 95
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getIsolationGroup:()Ljava/lang/String;
            ifnull 8
         7: .line 96
            new java.lang.IllegalArgumentException
            dup
            ldc "Can't specify isolationGroup for already created verticle"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 98
      StackMap locals:
      StackMap stack:
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getIsolatedClasses:()Ljava/util/List;
            ifnull 10
         9: .line 99
            new java.lang.IllegalArgumentException
            dup
            ldc "Can't specify isolatedClasses for already created verticle"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 101
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 4 /* currentContext */
        start local 4 // io.vertx.core.impl.ContextInternal currentContext
        11: .line 102
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.core.impl.DeploymentManager.getClassLoader:(Lio/vertx/core/DeploymentOptions;)Ljava/lang/ClassLoader;
            astore 5 /* cl */
        start local 5 // java.lang.ClassLoader cl
        12: .line 103
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getInstances:()I
            istore 6 /* nbInstances */
        start local 6 // int nbInstances
        13: .line 104
            new java.util.IdentityHashMap
            dup
            invokespecial java.util.IdentityHashMap.<init>:()V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            astore 7 /* verticles */
        start local 7 // java.util.Set verticles
        14: .line 105
            iconst_0
            istore 8 /* i */
        start local 8 // int i
        15: goto 28
        16: .line 108
      StackMap locals: io.vertx.core.impl.DeploymentManager java.util.function.Supplier io.vertx.core.DeploymentOptions io.vertx.core.Handler io.vertx.core.impl.ContextInternal java.lang.ClassLoader int java.util.Set int
      StackMap stack:
            aload 1 /* verticleSupplier */
            invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
            checkcast io.vertx.core.Verticle
            astore 9 /* verticle */
        start local 9 // io.vertx.core.Verticle verticle
        17: .line 109
            goto 22
        end local 9 // io.vertx.core.Verticle verticle
      StackMap locals:
      StackMap stack: java.lang.Exception
        18: astore 10 /* e */
        start local 10 // java.lang.Exception e
        19: .line 110
            aload 3 /* completionHandler */
            ifnull 21
        20: .line 111
            aload 3 /* completionHandler */
            aload 10 /* e */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        21: .line 113
      StackMap locals: io.vertx.core.impl.DeploymentManager java.util.function.Supplier io.vertx.core.DeploymentOptions io.vertx.core.Handler io.vertx.core.impl.ContextInternal java.lang.ClassLoader int java.util.Set int top java.lang.Exception
      StackMap stack:
            return
        end local 10 // java.lang.Exception e
        start local 9 // io.vertx.core.Verticle verticle
        22: .line 115
      StackMap locals: io.vertx.core.impl.DeploymentManager java.util.function.Supplier io.vertx.core.DeploymentOptions io.vertx.core.Handler io.vertx.core.impl.ContextInternal java.lang.ClassLoader int java.util.Set int io.vertx.core.Verticle
      StackMap stack:
            aload 9 /* verticle */
            ifnonnull 26
        23: .line 116
            aload 3 /* completionHandler */
            ifnull 25
        24: .line 117
            aload 3 /* completionHandler */
            ldc "Supplied verticle is null"
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        25: .line 119
      StackMap locals:
      StackMap stack:
            return
        26: .line 121
      StackMap locals:
      StackMap stack:
            aload 7 /* verticles */
            aload 9 /* verticle */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // io.vertx.core.Verticle verticle
        27: .line 105
            iinc 8 /* i */ 1
      StackMap locals:
      StackMap stack:
        28: iload 8 /* i */
            iload 6 /* nbInstances */
            if_icmplt 16
        end local 8 // int i
        29: .line 123
            aload 7 /* verticles */
            invokeinterface java.util.Set.size:()I
            iload 6 /* nbInstances */
            if_icmpeq 33
        30: .line 124
            aload 3 /* completionHandler */
            ifnull 32
        31: .line 125
            aload 3 /* completionHandler */
            ldc "Same verticle supplied more than once"
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        32: .line 127
      StackMap locals:
      StackMap stack:
            return
        33: .line 129
      StackMap locals:
      StackMap stack:
            aload 7 /* verticles */
            aload 7 /* verticles */
            invokeinterface java.util.Set.size:()I
            anewarray io.vertx.core.Verticle
            invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast io.vertx.core.Verticle[]
            astore 8 /* verticlesArray */
        start local 8 // io.vertx.core.Verticle[] verticlesArray
        34: .line 130
            aload 8 /* verticlesArray */
            iconst_0
            aaload
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 9 /* verticleClass */
        start local 9 // java.lang.String verticleClass
        35: .line 131
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "java:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* verticleClass */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 2 /* options */
            aload 4 /* currentContext */
            aload 4 /* currentContext */
            aload 3 /* completionHandler */
            aload 5 /* cl */
            aload 8 /* verticlesArray */
            invokevirtual io.vertx.core.impl.DeploymentManager.doDeploy:(Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/lang/ClassLoader;[Lio/vertx/core/Verticle;)V
        36: .line 132
            return
        end local 9 // java.lang.String verticleClass
        end local 8 // io.vertx.core.Verticle[] verticlesArray
        end local 7 // java.util.Set verticles
        end local 6 // int nbInstances
        end local 5 // java.lang.ClassLoader cl
        end local 4 // io.vertx.core.impl.ContextInternal currentContext
        end local 3 // io.vertx.core.Handler completionHandler
        end local 2 // io.vertx.core.DeploymentOptions options
        end local 1 // java.util.function.Supplier verticleSupplier
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   37     0               this  Lio/vertx/core/impl/DeploymentManager;
            0   37     1   verticleSupplier  Ljava/util/function/Supplier<Lio/vertx/core/Verticle;>;
            0   37     2            options  Lio/vertx/core/DeploymentOptions;
            0   37     3  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
           11   37     4     currentContext  Lio/vertx/core/impl/ContextInternal;
           12   37     5                 cl  Ljava/lang/ClassLoader;
           13   37     6        nbInstances  I
           14   37     7          verticles  Ljava/util/Set<Lio/vertx/core/Verticle;>;
           15   29     8                  i  I
           17   18     9           verticle  Lio/vertx/core/Verticle;
           22   27     9           verticle  Lio/vertx/core/Verticle;
           19   22    10                  e  Ljava/lang/Exception;
           34   37     8     verticlesArray  [Lio/vertx/core/Verticle;
           35   37     9      verticleClass  Ljava/lang/String;
      Exception table:
        from    to  target  type
          16    17      18  Class java.lang.Exception
    Signature: (Ljava/util/function/Supplier<Lio/vertx/core/Verticle;>;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;)V
    MethodParameters:
                   Name  Flags
      verticleSupplier   
      options            
      completionHandler  

  public void deployVerticle(java.lang.String, io.vertx.core.DeploymentOptions, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=4
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.lang.String identifier
        start local 2 // io.vertx.core.DeploymentOptions options
        start local 3 // io.vertx.core.Handler completionHandler
         0: .line 137
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.isMultiThreaded:()Z
            ifeq 2
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.isWorker:()Z
            ifne 2
         1: .line 138
            new java.lang.IllegalArgumentException
            dup
            ldc "If multi-threaded then must be worker too"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 4 /* callingContext */
        start local 4 // io.vertx.core.impl.ContextInternal callingContext
         3: .line 141
            aload 0 /* this */
            aload 2 /* options */
            invokevirtual io.vertx.core.impl.DeploymentManager.getClassLoader:(Lio/vertx/core/DeploymentOptions;)Ljava/lang/ClassLoader;
            astore 5 /* cl */
        start local 5 // java.lang.ClassLoader cl
         4: .line 145
            aload 0 /* this */
            aload 1 /* identifier */
            aload 2 /* options */
            aload 4 /* callingContext */
            aload 4 /* callingContext */
            aload 5 /* cl */
            aload 3 /* completionHandler */
            invokevirtual io.vertx.core.impl.DeploymentManager.doDeployVerticle:(Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/lang/ClassLoader;Lio/vertx/core/Handler;)V
         5: .line 146
            return
        end local 5 // java.lang.ClassLoader cl
        end local 4 // io.vertx.core.impl.ContextInternal callingContext
        end local 3 // io.vertx.core.Handler completionHandler
        end local 2 // io.vertx.core.DeploymentOptions options
        end local 1 // java.lang.String identifier
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lio/vertx/core/impl/DeploymentManager;
            0    6     1         identifier  Ljava/lang/String;
            0    6     2            options  Lio/vertx/core/DeploymentOptions;
            0    6     3  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            3    6     4     callingContext  Lio/vertx/core/impl/ContextInternal;
            4    6     5                 cl  Ljava/lang/ClassLoader;
    Signature: (Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;)V
    MethodParameters:
                   Name  Flags
      identifier         
      options            
      completionHandler  

  private void doDeployVerticle(java.lang.String, io.vertx.core.DeploymentOptions, io.vertx.core.impl.ContextInternal, io.vertx.core.impl.ContextInternal, java.lang.ClassLoader, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/lang/ClassLoader;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=9, args_size=7
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.lang.String identifier
        start local 2 // io.vertx.core.DeploymentOptions options
        start local 3 // io.vertx.core.impl.ContextInternal parentContext
        start local 4 // io.vertx.core.impl.ContextInternal callingContext
        start local 5 // java.lang.ClassLoader cl
        start local 6 // io.vertx.core.Handler completionHandler
         0: .line 154
            aload 0 /* this */
            aload 1 /* identifier */
            invokevirtual io.vertx.core.impl.DeploymentManager.resolveFactories:(Ljava/lang/String;)Ljava/util/List;
            astore 7 /* verticleFactories */
        start local 7 // java.util.List verticleFactories
         1: .line 155
            aload 7 /* verticleFactories */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8 /* iter */
        start local 8 // java.util.Iterator iter
         2: .line 156
            aload 0 /* this */
            aload 8 /* iter */
            aconst_null
            aload 1 /* identifier */
            aload 2 /* options */
            aload 3 /* parentContext */
            aload 4 /* callingContext */
            aload 5 /* cl */
            aload 6 /* completionHandler */
            invokevirtual io.vertx.core.impl.DeploymentManager.doDeployVerticle:(Ljava/util/Iterator;Ljava/lang/Throwable;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/lang/ClassLoader;Lio/vertx/core/Handler;)V
         3: .line 157
            return
        end local 8 // java.util.Iterator iter
        end local 7 // java.util.List verticleFactories
        end local 6 // io.vertx.core.Handler completionHandler
        end local 5 // java.lang.ClassLoader cl
        end local 4 // io.vertx.core.impl.ContextInternal callingContext
        end local 3 // io.vertx.core.impl.ContextInternal parentContext
        end local 2 // io.vertx.core.DeploymentOptions options
        end local 1 // java.lang.String identifier
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    4     0               this  Lio/vertx/core/impl/DeploymentManager;
            0    4     1         identifier  Ljava/lang/String;
            0    4     2            options  Lio/vertx/core/DeploymentOptions;
            0    4     3      parentContext  Lio/vertx/core/impl/ContextInternal;
            0    4     4     callingContext  Lio/vertx/core/impl/ContextInternal;
            0    4     5                 cl  Ljava/lang/ClassLoader;
            0    4     6  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            1    4     7  verticleFactories  Ljava/util/List<Lio/vertx/core/spi/VerticleFactory;>;
            2    4     8               iter  Ljava/util/Iterator<Lio/vertx/core/spi/VerticleFactory;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/lang/ClassLoader;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;)V
    MethodParameters:
                   Name  Flags
      identifier         
      options            
      parentContext      
      callingContext     
      cl                 
      completionHandler  

  private void doDeployVerticle(java.util.Iterator<io.vertx.core.spi.VerticleFactory>, java.lang.Throwable, java.lang.String, io.vertx.core.DeploymentOptions, io.vertx.core.impl.ContextInternal, io.vertx.core.impl.ContextInternal, java.lang.ClassLoader, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>);
    descriptor: (Ljava/util/Iterator;Ljava/lang/Throwable;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/lang/ClassLoader;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=12, args_size=9
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.util.Iterator iter
        start local 2 // java.lang.Throwable prevErr
        start local 3 // java.lang.String identifier
        start local 4 // io.vertx.core.DeploymentOptions options
        start local 5 // io.vertx.core.impl.ContextInternal parentContext
        start local 6 // io.vertx.core.impl.ContextInternal callingContext
        start local 7 // java.lang.ClassLoader cl
        start local 8 // io.vertx.core.Handler completionHandler
         0: .line 167
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifeq 14
         1: .line 168
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.core.spi.VerticleFactory
            astore 9 /* verticleFactory */
        start local 9 // io.vertx.core.spi.VerticleFactory verticleFactory
         2: .line 169
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 10 /* promise */
        start local 10 // io.vertx.core.Promise promise
         3: .line 170
            aload 9 /* verticleFactory */
            invokeinterface io.vertx.core.spi.VerticleFactory.requiresResolve:()Z
            ifeq 11
         4: .line 172
            aload 9 /* verticleFactory */
            aload 3 /* identifier */
            aload 4 /* options */
            aload 7 /* cl */
            aload 10 /* promise */
            invokeinterface io.vertx.core.spi.VerticleFactory.resolve:(Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Ljava/lang/ClassLoader;Lio/vertx/core/Promise;)V
         5: .line 173
            goto 12
      StackMap locals: io.vertx.core.impl.DeploymentManager java.util.Iterator java.lang.Throwable java.lang.String io.vertx.core.DeploymentOptions io.vertx.core.impl.ContextInternal io.vertx.core.impl.ContextInternal java.lang.ClassLoader io.vertx.core.Handler io.vertx.core.spi.VerticleFactory io.vertx.core.Promise
      StackMap stack: java.lang.Exception
         6: astore 11 /* e */
        start local 11 // java.lang.Exception e
         7: .line 175
            aload 10 /* promise */
            aload 11 /* e */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
         8: .line 176
            goto 12
      StackMap locals: io.vertx.core.impl.DeploymentManager java.util.Iterator java.lang.Throwable java.lang.String io.vertx.core.DeploymentOptions io.vertx.core.impl.ContextInternal io.vertx.core.impl.ContextInternal java.lang.ClassLoader io.vertx.core.Handler io.vertx.core.spi.VerticleFactory io.vertx.core.Promise java.lang.Exception
      StackMap stack: java.lang.Exception
         9: pop
        end local 11 // java.lang.Exception e
        10: .line 180
            goto 12
        11: .line 181
      StackMap locals:
      StackMap stack:
            aload 10 /* promise */
            aload 3 /* identifier */
            invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
        12: .line 183
      StackMap locals:
      StackMap stack:
            aload 10 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            aload 0 /* this */
            aload 3 /* identifier */
            aload 4 /* options */
            aload 8 /* completionHandler */
            aload 9 /* verticleFactory */
            aload 7 /* cl */
            aload 5 /* parentContext */
            aload 6 /* callingContext */
            aload 1 /* iter */
            invokedynamic handle(Lio/vertx/core/impl/DeploymentManager;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/Handler;Lio/vertx/core/spi/VerticleFactory;Ljava/lang/ClassLoader;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/util/Iterator;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/impl/DeploymentManager.lambda$1(Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/Handler;Lio/vertx/core/spi/VerticleFactory;Ljava/lang/ClassLoader;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/util/Iterator;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.Future.setHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
        end local 10 // io.vertx.core.Promise promise
        end local 9 // io.vertx.core.spi.VerticleFactory verticleFactory
        13: .line 230
            goto 16
        14: .line 231
      StackMap locals:
      StackMap stack:
            aload 2 /* prevErr */
            ifnull 16
        15: .line 233
            aload 0 /* this */
            aload 2 /* prevErr */
            aload 6 /* callingContext */
            aload 8 /* completionHandler */
            invokevirtual io.vertx.core.impl.DeploymentManager.reportFailure:(Ljava/lang/Throwable;Lio/vertx/core/Context;Lio/vertx/core/Handler;)V
        16: .line 238
      StackMap locals:
      StackMap stack:
            return
        end local 8 // io.vertx.core.Handler completionHandler
        end local 7 // java.lang.ClassLoader cl
        end local 6 // io.vertx.core.impl.ContextInternal callingContext
        end local 5 // io.vertx.core.impl.ContextInternal parentContext
        end local 4 // io.vertx.core.DeploymentOptions options
        end local 3 // java.lang.String identifier
        end local 2 // java.lang.Throwable prevErr
        end local 1 // java.util.Iterator iter
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0               this  Lio/vertx/core/impl/DeploymentManager;
            0   17     1               iter  Ljava/util/Iterator<Lio/vertx/core/spi/VerticleFactory;>;
            0   17     2            prevErr  Ljava/lang/Throwable;
            0   17     3         identifier  Ljava/lang/String;
            0   17     4            options  Lio/vertx/core/DeploymentOptions;
            0   17     5      parentContext  Lio/vertx/core/impl/ContextInternal;
            0   17     6     callingContext  Lio/vertx/core/impl/ContextInternal;
            0   17     7                 cl  Ljava/lang/ClassLoader;
            0   17     8  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            2   13     9    verticleFactory  Lio/vertx/core/spi/VerticleFactory;
            3   13    10            promise  Lio/vertx/core/Promise<Ljava/lang/String;>;
            7   10    11                  e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           4     5       6  Class java.lang.Exception
           7     8       9  Class java.lang.Exception
    Signature: (Ljava/util/Iterator<Lio/vertx/core/spi/VerticleFactory;>;Ljava/lang/Throwable;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/lang/ClassLoader;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;)V
    MethodParameters:
                   Name  Flags
      iter               
      prevErr            
      identifier         
      options            
      parentContext      
      callingContext     
      cl                 
      completionHandler  

  private io.vertx.core.Verticle[] createVerticles(io.vertx.core.spi.VerticleFactory, java.lang.String, int, java.lang.ClassLoader);
    descriptor: (Lio/vertx/core/spi/VerticleFactory;Ljava/lang/String;ILjava/lang/ClassLoader;)[Lio/vertx/core/Verticle;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=5
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // io.vertx.core.spi.VerticleFactory verticleFactory
        start local 2 // java.lang.String identifier
        start local 3 // int instances
        start local 4 // java.lang.ClassLoader cl
         0: .line 241
            iload 3 /* instances */
            anewarray io.vertx.core.Verticle
            astore 5 /* verticles */
        start local 5 // io.vertx.core.Verticle[] verticles
         1: .line 242
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         2: goto 7
         3: .line 243
      StackMap locals: io.vertx.core.Verticle[] int
      StackMap stack:
            aload 5 /* verticles */
            iload 6 /* i */
            aload 1 /* verticleFactory */
            aload 2 /* identifier */
            aload 4 /* cl */
            invokeinterface io.vertx.core.spi.VerticleFactory.createVerticle:(Ljava/lang/String;Ljava/lang/ClassLoader;)Lio/vertx/core/Verticle;
            aastore
         4: .line 244
            aload 5 /* verticles */
            iload 6 /* i */
            aaload
            ifnonnull 6
         5: .line 245
            new java.lang.NullPointerException
            dup
            ldc "VerticleFactory::createVerticle returned null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 242
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 6 /* i */
            iload 3 /* instances */
            if_icmplt 3
        end local 6 // int i
         8: .line 248
            aload 5 /* verticles */
            areturn
        end local 5 // io.vertx.core.Verticle[] verticles
        end local 4 // java.lang.ClassLoader cl
        end local 3 // int instances
        end local 2 // java.lang.String identifier
        end local 1 // io.vertx.core.spi.VerticleFactory verticleFactory
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0             this  Lio/vertx/core/impl/DeploymentManager;
            0    9     1  verticleFactory  Lio/vertx/core/spi/VerticleFactory;
            0    9     2       identifier  Ljava/lang/String;
            0    9     3        instances  I
            0    9     4               cl  Ljava/lang/ClassLoader;
            1    9     5        verticles  [Lio/vertx/core/Verticle;
            2    8     6                i  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
                 Name  Flags
      verticleFactory  
      identifier       
      instances        
      cl               

  private java.lang.String getSuffix(int, java.lang.String);
    descriptor: (ILjava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // int pos
        start local 2 // java.lang.String str
         0: .line 252
            iload 1 /* pos */
            iconst_1
            iadd
            aload 2 /* str */
            invokevirtual java.lang.String.length:()I
            if_icmplt 2
         1: .line 253
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* str */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 255
      StackMap locals:
      StackMap stack:
            aload 2 /* str */
            iload 1 /* pos */
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String str
        end local 1 // int pos
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/core/impl/DeploymentManager;
            0    3     1   pos  I
            0    3     2   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      pos   
      str   

  public void undeployVerticle(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.lang.String deploymentID
        start local 2 // io.vertx.core.Handler completionHandler
         0: .line 259
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.deployments:Ljava/util/Map;
            aload 1 /* deploymentID */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.core.impl.Deployment
            astore 3 /* deployment */
        start local 3 // io.vertx.core.impl.Deployment deployment
         1: .line 260
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 4 /* currentContext */
        start local 4 // io.vertx.core.Context currentContext
         2: .line 261
            aload 3 /* deployment */
            ifnonnull 5
         3: .line 262
            aload 0 /* this */
            new java.lang.IllegalStateException
            dup
            ldc "Unknown deployment"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            aload 4 /* currentContext */
            aload 2 /* completionHandler */
            invokevirtual io.vertx.core.impl.DeploymentManager.reportFailure:(Ljava/lang/Throwable;Lio/vertx/core/Context;Lio/vertx/core/Handler;)V
         4: .line 263
            goto 6
         5: .line 264
      StackMap locals: io.vertx.core.impl.Deployment io.vertx.core.Context
      StackMap stack:
            aload 3 /* deployment */
            aload 2 /* completionHandler */
            invokeinterface io.vertx.core.impl.Deployment.undeploy:(Lio/vertx/core/Handler;)V
         6: .line 266
      StackMap locals:
      StackMap stack:
            return
        end local 4 // io.vertx.core.Context currentContext
        end local 3 // io.vertx.core.impl.Deployment deployment
        end local 2 // io.vertx.core.Handler completionHandler
        end local 1 // java.lang.String deploymentID
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    7     0               this  Lio/vertx/core/impl/DeploymentManager;
            0    7     1       deploymentID  Ljava/lang/String;
            0    7     2  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    7     3         deployment  Lio/vertx/core/impl/Deployment;
            2    7     4     currentContext  Lio/vertx/core/Context;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
                   Name  Flags
      deploymentID       
      completionHandler  

  public java.util.Set<java.lang.String> deployments();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.impl.DeploymentManager this
         0: .line 269
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.deployments:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokestatic java.util.Collections.unmodifiableSet:(Ljava/util/Set;)Ljava/util/Set;
            areturn
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/impl/DeploymentManager;
    Signature: ()Ljava/util/Set<Ljava/lang/String;>;

  public io.vertx.core.impl.Deployment getDeployment(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/impl/Deployment;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.lang.String deploymentID
         0: .line 273
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.deployments:Ljava/util/Map;
            aload 1 /* deploymentID */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.core.impl.Deployment
            areturn
        end local 1 // java.lang.String deploymentID
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/vertx/core/impl/DeploymentManager;
            0    1     1  deploymentID  Ljava/lang/String;
    MethodParameters:
              Name  Flags
      deploymentID  

  public void undeployAll(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // io.vertx.core.Handler completionHandler
         0: .line 280
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 2 /* deploymentIDs */
        start local 2 // java.util.Set deploymentIDs
         1: .line 281
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.deployments:Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: io.vertx.core.impl.DeploymentManager io.vertx.core.Handler java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 3 /* entry */
        start local 3 // java.util.Map$Entry entry
         3: .line 282
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast io.vertx.core.impl.Deployment
            invokeinterface io.vertx.core.impl.Deployment.isChild:()Z
            ifne 5
         4: .line 283
            aload 2 /* deploymentIDs */
            aload 3 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 3 // java.util.Map$Entry entry
         5: .line 281
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 286
            aload 2 /* deploymentIDs */
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 13
         7: .line 287
            new java.util.concurrent.atomic.AtomicInteger
            dup
            iconst_0
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:(I)V
            astore 3 /* count */
        start local 3 // java.util.concurrent.atomic.AtomicInteger count
         8: .line 288
            aload 2 /* deploymentIDs */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 11
      StackMap locals: io.vertx.core.impl.DeploymentManager io.vertx.core.Handler java.util.Set java.util.concurrent.atomic.AtomicInteger top java.util.Iterator
      StackMap stack:
         9: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* deploymentID */
        start local 4 // java.lang.String deploymentID
        10: .line 289
            aload 0 /* this */
            aload 4 /* deploymentID */
            aload 3 /* count */
            aload 2 /* deploymentIDs */
            aload 1 /* completionHandler */
            invokedynamic handle(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set;Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/impl/DeploymentManager.lambda$4(Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokevirtual io.vertx.core.impl.DeploymentManager.undeployVerticle:(Ljava/lang/String;Lio/vertx/core/Handler;)V
        end local 4 // java.lang.String deploymentID
        11: .line 288
      StackMap locals:
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 3 // java.util.concurrent.atomic.AtomicInteger count
        12: .line 299
            goto 15
        13: .line 300
      StackMap locals: io.vertx.core.impl.DeploymentManager io.vertx.core.Handler java.util.Set
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.getOrCreateContext:()Lio/vertx/core/impl/ContextInternal;
            astore 3 /* context */
        start local 3 // io.vertx.core.Context context
        14: .line 301
            aload 3 /* context */
            aload 1 /* completionHandler */
            invokedynamic handle(Lio/vertx/core/Handler;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/impl/DeploymentManager.lambda$5(Lio/vertx/core/Handler;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
        end local 3 // io.vertx.core.Context context
        15: .line 303
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.Set deploymentIDs
        end local 1 // io.vertx.core.Handler completionHandler
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   16     0               this  Lio/vertx/core/impl/DeploymentManager;
            0   16     1  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1   16     2      deploymentIDs  Ljava/util/Set<Ljava/lang/String;>;
            3    5     3              entry  Ljava/util/Map$Entry<Ljava/lang/String;Lio/vertx/core/impl/Deployment;>;
            8   12     3              count  Ljava/util/concurrent/atomic/AtomicInteger;
           10   11     4       deploymentID  Ljava/lang/String;
           14   15     3            context  Lio/vertx/core/Context;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
                   Name  Flags
      completionHandler  

  public void registerVerticleFactory(io.vertx.core.spi.VerticleFactory);
    descriptor: (Lio/vertx/core/spi/VerticleFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // io.vertx.core.spi.VerticleFactory factory
         0: .line 306
            aload 1 /* factory */
            invokeinterface io.vertx.core.spi.VerticleFactory.prefix:()Ljava/lang/String;
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         1: .line 307
            aload 2 /* prefix */
            ifnonnull 3
         2: .line 308
            new java.lang.IllegalArgumentException
            dup
            ldc "factory.prefix() cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 310
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.verticleFactories:Ljava/util/Map;
            aload 2 /* prefix */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* facts */
        start local 3 // java.util.List facts
         4: .line 311
            aload 3 /* facts */
            ifnonnull 7
         5: .line 312
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* facts */
         6: .line 313
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.verticleFactories:Ljava/util/Map;
            aload 2 /* prefix */
            aload 3 /* facts */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         7: .line 315
      StackMap locals: java.util.List
      StackMap stack:
            aload 3 /* facts */
            aload 1 /* factory */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 316
            new java.lang.IllegalArgumentException
            dup
            ldc "Factory already registered"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 318
      StackMap locals:
      StackMap stack:
            aload 3 /* facts */
            aload 1 /* factory */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 320
            aload 3 /* facts */
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  io/vertx/core/impl/DeploymentManager.lambda$6(Lio/vertx/core/spi/VerticleFactory;Lio/vertx/core/spi/VerticleFactory;)I (6)
                  (Lio/vertx/core/spi/VerticleFactory;Lio/vertx/core/spi/VerticleFactory;)I
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
        11: .line 321
            aload 1 /* factory */
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.spi.VerticleFactory.init:(Lio/vertx/core/Vertx;)V
        12: .line 322
            return
        end local 3 // java.util.List facts
        end local 2 // java.lang.String prefix
        end local 1 // io.vertx.core.spi.VerticleFactory factory
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lio/vertx/core/impl/DeploymentManager;
            0   13     1  factory  Lio/vertx/core/spi/VerticleFactory;
            1   13     2   prefix  Ljava/lang/String;
            4   13     3    facts  Ljava/util/List<Lio/vertx/core/spi/VerticleFactory;>;
    MethodParameters:
         Name  Flags
      factory  

  public void unregisterVerticleFactory(io.vertx.core.spi.VerticleFactory);
    descriptor: (Lio/vertx/core/spi/VerticleFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // io.vertx.core.spi.VerticleFactory factory
         0: .line 325
            aload 1 /* factory */
            invokeinterface io.vertx.core.spi.VerticleFactory.prefix:()Ljava/lang/String;
            astore 2 /* prefix */
        start local 2 // java.lang.String prefix
         1: .line 326
            aload 2 /* prefix */
            ifnonnull 3
         2: .line 327
            new java.lang.IllegalArgumentException
            dup
            ldc "factory.prefix() cannot be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 329
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.verticleFactories:Ljava/util/Map;
            aload 2 /* prefix */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* facts */
        start local 3 // java.util.List facts
         4: .line 330
            iconst_0
            istore 4 /* removed */
        start local 4 // boolean removed
         5: .line 331
            aload 3 /* facts */
            ifnull 10
         6: .line 332
            aload 3 /* facts */
            aload 1 /* factory */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 333
            iconst_1
            istore 4 /* removed */
         8: .line 335
      StackMap locals: java.util.List int
      StackMap stack:
            aload 3 /* facts */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 10
         9: .line 336
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.verticleFactories:Ljava/util/Map;
            aload 2 /* prefix */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 339
      StackMap locals:
      StackMap stack:
            iload 4 /* removed */
            ifne 12
        11: .line 340
            new java.lang.IllegalArgumentException
            dup
            ldc "factory isn't registered"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 342
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean removed
        end local 3 // java.util.List facts
        end local 2 // java.lang.String prefix
        end local 1 // io.vertx.core.spi.VerticleFactory factory
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Lio/vertx/core/impl/DeploymentManager;
            0   13     1  factory  Lio/vertx/core/spi/VerticleFactory;
            1   13     2   prefix  Ljava/lang/String;
            4   13     3    facts  Ljava/util/List<Lio/vertx/core/spi/VerticleFactory;>;
            5   13     4  removed  Z
    MethodParameters:
         Name  Flags
      factory  

  public java.util.Set<io.vertx.core.spi.VerticleFactory> verticleFactories();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // io.vertx.core.impl.DeploymentManager this
         0: .line 345
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 1 /* facts */
        start local 1 // java.util.Set facts
         1: .line 346
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.verticleFactories:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: io.vertx.core.impl.DeploymentManager java.util.Set top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* list */
        start local 2 // java.util.List list
         3: .line 347
            aload 1 /* facts */
            aload 2 /* list */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        end local 2 // java.util.List list
         4: .line 346
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 349
            aload 1 /* facts */
            areturn
        end local 1 // java.util.Set facts
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lio/vertx/core/impl/DeploymentManager;
            1    6     1  facts  Ljava/util/Set<Lio/vertx/core/spi/VerticleFactory;>;
            3    4     2   list  Ljava/util/List<Lio/vertx/core/spi/VerticleFactory;>;
    Signature: ()Ljava/util/Set<Lio/vertx/core/spi/VerticleFactory;>;

  private java.util.List<io.vertx.core.spi.VerticleFactory> resolveFactories(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.lang.String identifier
         0: .line 363
            aconst_null
            astore 2 /* factoryList */
        start local 2 // java.util.List factoryList
         1: .line 364
            aload 1 /* identifier */
            bipush 58
            invokevirtual java.lang.String.indexOf:(I)I
            istore 3 /* pos */
        start local 3 // int pos
         2: .line 365
            aconst_null
            astore 4 /* lookup */
        start local 4 // java.lang.String lookup
         3: .line 366
            iload 3 /* pos */
            iconst_m1
            if_icmpeq 6
         4: .line 368
            aload 1 /* identifier */
            iconst_0
            iload 3 /* pos */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 4 /* lookup */
         5: .line 369
            goto 11
         6: .line 371
      StackMap locals: java.util.List int java.lang.String
      StackMap stack:
            aload 1 /* identifier */
            bipush 46
            invokevirtual java.lang.String.lastIndexOf:(I)I
            istore 3 /* pos */
         7: .line 372
            iload 3 /* pos */
            iconst_m1
            if_icmpeq 10
         8: .line 373
            aload 0 /* this */
            iload 3 /* pos */
            aload 1 /* identifier */
            invokevirtual io.vertx.core.impl.DeploymentManager.getSuffix:(ILjava/lang/String;)Ljava/lang/String;
            astore 4 /* lookup */
         9: .line 374
            goto 11
        10: .line 376
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.defaultFactories:Ljava/util/List;
            astore 2 /* factoryList */
        11: .line 379
      StackMap locals:
      StackMap stack:
            aload 2 /* factoryList */
            ifnonnull 15
        12: .line 380
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.verticleFactories:Ljava/util/Map;
            aload 4 /* lookup */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 2 /* factoryList */
        13: .line 381
            aload 2 /* factoryList */
            ifnonnull 15
        14: .line 382
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.defaultFactories:Ljava/util/List;
            astore 2 /* factoryList */
        15: .line 385
      StackMap locals:
      StackMap stack:
            aload 2 /* factoryList */
            areturn
        end local 4 // java.lang.String lookup
        end local 3 // int pos
        end local 2 // java.util.List factoryList
        end local 1 // java.lang.String identifier
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   16     0         this  Lio/vertx/core/impl/DeploymentManager;
            0   16     1   identifier  Ljava/lang/String;
            1   16     2  factoryList  Ljava/util/List<Lio/vertx/core/spi/VerticleFactory;>;
            2   16     3          pos  I
            3   16     4       lookup  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/List<Lio/vertx/core/spi/VerticleFactory;>;
    MethodParameters:
            Name  Flags
      identifier  

  private static java.net.URL mapToURL(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/net/URL;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.String path
         0: .line 390
            new java.net.URL
            dup
            aload 0 /* path */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
         1: areturn
         2: .line 391
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            pop
         3: .line 393
            new java.io.File
            dup
            aload 0 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            invokevirtual java.io.File.toURI:()Ljava/net/URI;
            invokevirtual java.net.URI.toURL:()Ljava/net/URL;
         4: areturn
         5: .line 394
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
            astore 1 /* e1 */
        start local 1 // java.net.MalformedURLException e1
         6: .line 395
            new java.lang.IllegalArgumentException
            dup
            aload 1 /* e1 */
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.net.MalformedURLException e1
        end local 0 // java.lang.String path
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  path  Ljava/lang/String;
            6    7     1    e1  Ljava/net/MalformedURLException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.net.MalformedURLException
           3     4       5  Class java.net.MalformedURLException
    MethodParameters:
      Name  Flags
      path  

  private static java.util.List<java.net.URL> extractCPFromProperty();
    descriptor: ()Ljava/util/List;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=6, args_size=0
         0: .line 401
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 0 /* classpathURLs */
        start local 0 // java.util.List classpathURLs
         1: .line 402
            ldc "java.class.path"
            invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
            astore 1 /* classpath */
        start local 1 // java.lang.String classpath
         2: .line 403
            aload 1 /* classpath */
            invokestatic java.util.Objects.nonNull:(Ljava/lang/Object;)Z
            ifeq 8
         3: .line 404
            aload 1 /* classpath */
            getstatic java.io.File.pathSeparator:Ljava/lang/String;
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            dup
            astore 5
            arraylength
            istore 4
            iconst_0
            istore 3
            goto 7
      StackMap locals: java.util.List java.lang.String top int int java.lang.String[]
      StackMap stack:
         4: aload 5
            iload 3
            aaload
            astore 2 /* path */
        start local 2 // java.lang.String path
         5: .line 405
            aload 0 /* classpathURLs */
            aload 2 /* path */
            invokestatic io.vertx.core.impl.DeploymentManager.mapToURL:(Ljava/lang/String;)Ljava/net/URL;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.lang.String path
         6: .line 404
            iinc 3 1
      StackMap locals:
      StackMap stack:
         7: iload 3
            iload 4
            if_icmplt 4
         8: .line 408
      StackMap locals: java.util.List java.lang.String
      StackMap stack:
            aload 0 /* classpathURLs */
            areturn
        end local 1 // java.lang.String classpath
        end local 0 // java.util.List classpathURLs
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            1    9     0  classpathURLs  Ljava/util/List<Ljava/net/URL;>;
            2    9     1      classpath  Ljava/lang/String;
            5    6     2           path  Ljava/lang/String;
    Signature: ()Ljava/util/List<Ljava/net/URL;>;

  static java.util.List<java.net.URL> extractCPByManifest(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=9, args_size=1
        start local 0 // java.lang.ClassLoader current
         0: .line 413
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* classpathURLs */
        start local 1 // java.util.List classpathURLs
         1: .line 414
            ldc "META-INF/MANIFEST.MF"
            astore 2 /* searchFile */
        start local 2 // java.lang.String searchFile
         2: .line 417
            aload 0 /* current */
            aload 2 /* searchFile */
            invokevirtual java.lang.ClassLoader.getResources:(Ljava/lang/String;)Ljava/util/Enumeration;
            astore 3 /* urls */
        start local 3 // java.util.Enumeration urls
         3: .line 418
            goto 6
        end local 3 // java.util.Enumeration urls
      StackMap locals: java.lang.ClassLoader java.util.List java.lang.String
      StackMap stack: java.io.IOException
         4: astore 4 /* e */
        start local 4 // java.io.IOException e
         5: .line 419
            new java.lang.IllegalStateException
            dup
            aload 4 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.io.IOException e
        start local 3 // java.util.Enumeration urls
         6: .line 421
      StackMap locals: java.util.Enumeration
      StackMap stack:
            aload 3 /* urls */
            invokestatic java.util.Collections.list:(Ljava/util/Enumeration;)Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 5
            goto 18
      StackMap locals: java.lang.ClassLoader java.util.List java.lang.String java.util.Enumeration top java.util.Iterator
      StackMap stack:
         7: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.URL
            astore 4 /* url */
        start local 4 // java.net.URL url
         8: .line 422
            aload 4 /* url */
            invokevirtual java.net.URL.toExternalForm:()Ljava/lang/String;
            astore 6 /* urlString */
        start local 6 // java.lang.String urlString
         9: .line 423
            ldc "jar"
            aload 4 /* url */
            invokevirtual java.net.URL.getProtocol:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 13
        10: .line 424
            ldc "jar:"
            astore 7 /* prefix */
        start local 7 // java.lang.String prefix
        11: .line 425
            new java.lang.StringBuilder
            dup
            ldc "!/"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* searchFile */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 8 /* suffix */
        start local 8 // java.lang.String suffix
        12: .line 426
            aload 6 /* urlString */
            aload 7 /* prefix */
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            aload 8 /* suffix */
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 6 /* urlString */
        end local 8 // java.lang.String suffix
        end local 7 // java.lang.String prefix
        13: .line 429
      StackMap locals: java.lang.ClassLoader java.util.List java.lang.String java.util.Enumeration java.net.URL java.util.Iterator java.lang.String
      StackMap stack:
            aload 6 /* urlString */
            aload 2 /* searchFile */
            ldc ""
            invokevirtual java.lang.String.replace:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            astore 6 /* urlString */
        14: .line 431
            aload 1 /* classpathURLs */
            new java.net.URL
            dup
            aload 6 /* urlString */
            invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 432
            goto 18
      StackMap locals:
      StackMap stack: java.net.MalformedURLException
        16: astore 7 /* e */
        start local 7 // java.net.MalformedURLException e
        17: .line 433
            new java.lang.IllegalStateException
            dup
            aload 7 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 7 // java.net.MalformedURLException e
        end local 6 // java.lang.String urlString
        end local 4 // java.net.URL url
        18: .line 421
      StackMap locals: java.lang.ClassLoader java.util.List java.lang.String java.util.Enumeration top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        19: .line 436
            aload 1 /* classpathURLs */
            areturn
        end local 3 // java.util.Enumeration urls
        end local 2 // java.lang.String searchFile
        end local 1 // java.util.List classpathURLs
        end local 0 // java.lang.ClassLoader current
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   20     0        current  Ljava/lang/ClassLoader;
            1   20     1  classpathURLs  Ljava/util/List<Ljava/net/URL;>;
            2   20     2     searchFile  Ljava/lang/String;
            3    4     3           urls  Ljava/util/Enumeration<Ljava/net/URL;>;
            6   20     3           urls  Ljava/util/Enumeration<Ljava/net/URL;>;
            5    6     4              e  Ljava/io/IOException;
            8   18     4            url  Ljava/net/URL;
            9   18     6      urlString  Ljava/lang/String;
           11   13     7         prefix  Ljava/lang/String;
           12   13     8         suffix  Ljava/lang/String;
           17   18     7              e  Ljava/net/MalformedURLException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.io.IOException
          14    15      16  Class java.net.MalformedURLException
    Signature: (Ljava/lang/ClassLoader;)Ljava/util/List<Ljava/net/URL;>;
    MethodParameters:
         Name  Flags
      current  

  static java.util.List<java.net.URL> extractClasspath(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)Ljava/util/List;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.ClassLoader current
         0: .line 441
            aload 0 /* current */
            instanceof java.net.URLClassLoader
            ifeq 3
         1: .line 442
            aload 0 /* current */
            checkcast java.net.URLClassLoader
            astore 1 /* urlc */
        start local 1 // java.net.URLClassLoader urlc
         2: .line 443
            aload 1 /* urlc */
            invokevirtual java.net.URLClassLoader.getURLs:()[Ljava/net/URL;
            invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
            areturn
        end local 1 // java.net.URLClassLoader urlc
         3: .line 445
      StackMap locals:
      StackMap stack:
            invokestatic io.vertx.core.impl.DeploymentManager.extractCPFromProperty:()Ljava/util/List;
            astore 1 /* classpathURLs */
        start local 1 // java.util.List classpathURLs
         4: .line 446
            aload 0 /* current */
            invokestatic io.vertx.core.impl.DeploymentManager.extractCPByManifest:(Ljava/lang/ClassLoader;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 8
      StackMap locals: java.lang.ClassLoader java.util.List top java.util.Iterator
      StackMap stack:
         5: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.URL
            astore 2 /* url */
        start local 2 // java.net.URL url
         6: .line 447
            aload 1 /* classpathURLs */
            aload 2 /* url */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 448
            aload 1 /* classpathURLs */
            aload 2 /* url */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // java.net.URL url
         8: .line 446
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
         9: .line 451
            aload 1 /* classpathURLs */
            areturn
        end local 1 // java.util.List classpathURLs
        end local 0 // java.lang.ClassLoader current
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0        current  Ljava/lang/ClassLoader;
            2    3     1           urlc  Ljava/net/URLClassLoader;
            4   10     1  classpathURLs  Ljava/util/List<Ljava/net/URL;>;
            6    8     2            url  Ljava/net/URL;
    Signature: (Ljava/lang/ClassLoader;)Ljava/util/List<Ljava/net/URL;>;
    MethodParameters:
         Name  Flags
      current  

  private java.lang.ClassLoader getClassLoader(io.vertx.core.DeploymentOptions);
    descriptor: (Lio/vertx/core/DeploymentOptions;)Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=11, args_size=2
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // io.vertx.core.DeploymentOptions options
         0: .line 460
            aload 1 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getIsolationGroup:()Ljava/lang/String;
            astore 2 /* isolationGroup */
        start local 2 // java.lang.String isolationGroup
         1: .line 462
            aload 2 /* isolationGroup */
            ifnonnull 4
         2: .line 463
            aload 0 /* this */
            invokevirtual io.vertx.core.impl.DeploymentManager.getCurrentClassLoader:()Ljava/lang/ClassLoader;
            astore 3 /* cl */
        start local 3 // java.lang.ClassLoader cl
         3: .line 464
            goto 27
        end local 3 // java.lang.ClassLoader cl
         4: .line 465
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         5: .line 466
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.classloaders:Ljava/util/Map;
            aload 2 /* isolationGroup */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast io.vertx.core.impl.IsolatingClassLoader
            astore 5 /* icl */
        start local 5 // io.vertx.core.impl.IsolatingClassLoader icl
         6: .line 467
            aload 5 /* icl */
            ifnonnull 21
         7: .line 468
            aload 0 /* this */
            invokevirtual io.vertx.core.impl.DeploymentManager.getCurrentClassLoader:()Ljava/lang/ClassLoader;
            astore 6 /* current */
        start local 6 // java.lang.ClassLoader current
         8: .line 469
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* urls */
        start local 7 // java.util.List urls
         9: .line 471
            aload 1 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getExtraClasspath:()Ljava/util/List;
            astore 8 /* extraClasspath */
        start local 8 // java.util.List extraClasspath
        10: .line 472
            aload 8 /* extraClasspath */
            ifnull 15
        11: .line 473
            aload 8 /* extraClasspath */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 10
            goto 14
      StackMap locals: io.vertx.core.impl.DeploymentManager io.vertx.core.DeploymentOptions java.lang.String top io.vertx.core.impl.DeploymentManager io.vertx.core.impl.IsolatingClassLoader java.lang.ClassLoader java.util.List java.util.List top java.util.Iterator
      StackMap stack:
        12: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* pathElement */
        start local 9 // java.lang.String pathElement
        13: .line 474
            aload 7 /* urls */
            aload 9 /* pathElement */
            invokestatic io.vertx.core.impl.DeploymentManager.mapToURL:(Ljava/lang/String;)Ljava/net/URL;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // java.lang.String pathElement
        14: .line 473
      StackMap locals:
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 12
        15: .line 478
      StackMap locals: io.vertx.core.impl.DeploymentManager io.vertx.core.DeploymentOptions java.lang.String top io.vertx.core.impl.DeploymentManager io.vertx.core.impl.IsolatingClassLoader java.lang.ClassLoader java.util.List java.util.List
      StackMap stack:
            aload 7 /* urls */
            aload 6 /* current */
            invokestatic io.vertx.core.impl.DeploymentManager.extractClasspath:(Ljava/lang/ClassLoader;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        16: .line 481
            new io.vertx.core.impl.IsolatingClassLoader
            dup
            aload 7 /* urls */
            aload 7 /* urls */
            invokeinterface java.util.List.size:()I
            anewarray java.net.URL
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.net.URL[]
            aload 0 /* this */
            invokevirtual io.vertx.core.impl.DeploymentManager.getCurrentClassLoader:()Ljava/lang/ClassLoader;
        17: .line 482
            aload 1 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getIsolatedClasses:()Ljava/util/List;
        18: .line 481
            invokespecial io.vertx.core.impl.IsolatingClassLoader.<init>:([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/util/List;)V
            astore 5 /* icl */
        19: .line 483
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.classloaders:Ljava/util/Map;
            aload 2 /* isolationGroup */
            aload 5 /* icl */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 8 // java.util.List extraClasspath
        end local 7 // java.util.List urls
        end local 6 // java.lang.ClassLoader current
        20: .line 484
            goto 22
        21: .line 485
      StackMap locals:
      StackMap stack:
            aload 5 /* icl */
            dup
            getfield io.vertx.core.impl.IsolatingClassLoader.refCount:I
            iconst_1
            iadd
            putfield io.vertx.core.impl.IsolatingClassLoader.refCount:I
        22: .line 487
      StackMap locals:
      StackMap stack:
            aload 5 /* icl */
            astore 3 /* cl */
        end local 5 // io.vertx.core.impl.IsolatingClassLoader icl
        start local 3 // java.lang.ClassLoader cl
        23: .line 465
            aload 4
            monitorexit
        24: goto 27
        end local 3 // java.lang.ClassLoader cl
      StackMap locals: io.vertx.core.impl.DeploymentManager io.vertx.core.DeploymentOptions java.lang.String top io.vertx.core.impl.DeploymentManager
      StackMap stack: java.lang.Throwable
        25: aload 4
            monitorexit
        26: athrow
        start local 3 // java.lang.ClassLoader cl
        27: .line 490
      StackMap locals: io.vertx.core.impl.DeploymentManager io.vertx.core.DeploymentOptions java.lang.String java.lang.ClassLoader
      StackMap stack:
            aload 3 /* cl */
            areturn
        end local 3 // java.lang.ClassLoader cl
        end local 2 // java.lang.String isolationGroup
        end local 1 // io.vertx.core.DeploymentOptions options
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   28     0            this  Lio/vertx/core/impl/DeploymentManager;
            0   28     1         options  Lio/vertx/core/DeploymentOptions;
            1   28     2  isolationGroup  Ljava/lang/String;
            3    4     3              cl  Ljava/lang/ClassLoader;
           23   25     3              cl  Ljava/lang/ClassLoader;
           27   28     3              cl  Ljava/lang/ClassLoader;
            6   23     5             icl  Lio/vertx/core/impl/IsolatingClassLoader;
            8   20     6         current  Ljava/lang/ClassLoader;
            9   20     7            urls  Ljava/util/List<Ljava/net/URL;>;
           10   20     8  extraClasspath  Ljava/util/List<Ljava/lang/String;>;
           13   14     9     pathElement  Ljava/lang/String;
      Exception table:
        from    to  target  type
           5    24      25  any
          25    26      25  any
    MethodParameters:
         Name  Flags
      options  

  private java.lang.ClassLoader getCurrentClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // io.vertx.core.impl.DeploymentManager this
         0: .line 494
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* cl */
        start local 1 // java.lang.ClassLoader cl
         1: .line 495
            aload 1 /* cl */
            ifnonnull 3
         2: .line 496
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 1 /* cl */
         3: .line 498
      StackMap locals: java.lang.ClassLoader
      StackMap stack:
            aload 1 /* cl */
            areturn
        end local 1 // java.lang.ClassLoader cl
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/core/impl/DeploymentManager;
            1    4     1    cl  Ljava/lang/ClassLoader;

  private <T> void reportFailure(java.lang.Throwable, io.vertx.core.Context, io.vertx.core.Handler<io.vertx.core.AsyncResult<T>>);
    descriptor: (Ljava/lang/Throwable;Lio/vertx/core/Context;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.lang.Throwable t
        start local 2 // io.vertx.core.Context context
        start local 3 // io.vertx.core.Handler completionHandler
         0: .line 503
            aload 3 /* completionHandler */
            ifnull 3
         1: .line 504
            aload 0 /* this */
            aload 2 /* context */
            aload 3 /* completionHandler */
            aload 1 /* t */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokevirtual io.vertx.core.impl.DeploymentManager.reportResult:(Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
         2: .line 505
            goto 4
         3: .line 506
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.core.impl.DeploymentManager.log:Lio/vertx/core/logging/Logger;
            aload 1 /* t */
            invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
            aload 1 /* t */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         4: .line 508
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.vertx.core.Handler completionHandler
        end local 2 // io.vertx.core.Context context
        end local 1 // java.lang.Throwable t
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0               this  Lio/vertx/core/impl/DeploymentManager;
            0    5     1                  t  Ljava/lang/Throwable;
            0    5     2            context  Lio/vertx/core/Context;
            0    5     3  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Throwable;Lio/vertx/core/Context;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;)V
    MethodParameters:
                   Name  Flags
      t                  
      context            
      completionHandler  

  private <T> void reportSuccess(T, io.vertx.core.Context, io.vertx.core.Handler<io.vertx.core.AsyncResult<T>>);
    descriptor: (Ljava/lang/Object;Lio/vertx/core/Context;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.lang.Object result
        start local 2 // io.vertx.core.Context context
        start local 3 // io.vertx.core.Handler completionHandler
         0: .line 511
            aload 3 /* completionHandler */
            ifnull 2
         1: .line 512
            aload 0 /* this */
            aload 2 /* context */
            aload 3 /* completionHandler */
            aload 1 /* result */
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokevirtual io.vertx.core.impl.DeploymentManager.reportResult:(Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
         2: .line 514
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.vertx.core.Handler completionHandler
        end local 2 // io.vertx.core.Context context
        end local 1 // java.lang.Object result
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    3     0               this  Lio/vertx/core/impl/DeploymentManager;
            0    3     1             result  TT;
            0    3     2            context  Lio/vertx/core/Context;
            0    3     3  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
    Signature: <T:Ljava/lang/Object;>(TT;Lio/vertx/core/Context;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;)V
    MethodParameters:
                   Name  Flags
      result             
      context            
      completionHandler  

  private <T> void reportResult(io.vertx.core.Context, io.vertx.core.Handler<io.vertx.core.AsyncResult<T>>, io.vertx.core.AsyncResult<T>);
    descriptor: (Lio/vertx/core/Context;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // io.vertx.core.Context context
        start local 2 // io.vertx.core.Handler completionHandler
        start local 3 // io.vertx.core.AsyncResult result
         0: .line 517
            aload 1 /* context */
            aload 2 /* completionHandler */
            aload 3 /* result */
            invokedynamic handle(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/impl/DeploymentManager.lambda$7(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
         1: .line 525
            return
        end local 3 // io.vertx.core.AsyncResult result
        end local 2 // io.vertx.core.Handler completionHandler
        end local 1 // io.vertx.core.Context context
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lio/vertx/core/impl/DeploymentManager;
            0    2     1            context  Lio/vertx/core/Context;
            0    2     2  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;
            0    2     3             result  Lio/vertx/core/AsyncResult<TT;>;
    Signature: <T:Ljava/lang/Object;>(Lio/vertx/core/Context;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<TT;>;>;Lio/vertx/core/AsyncResult<TT;>;)V
    MethodParameters:
                   Name  Flags
      context            
      completionHandler  
      result             

  private void doDeploy(java.lang.String, io.vertx.core.DeploymentOptions, io.vertx.core.impl.ContextInternal, io.vertx.core.impl.ContextInternal, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.String>>, java.lang.ClassLoader, io.vertx.core.Verticle[]);
    descriptor: (Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/lang/ClassLoader;[Lio/vertx/core/Verticle;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=12, locals=22, args_size=8
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 1 // java.lang.String identifier
        start local 2 // io.vertx.core.DeploymentOptions options
        start local 3 // io.vertx.core.impl.ContextInternal parentContext
        start local 4 // io.vertx.core.impl.ContextInternal callingContext
        start local 5 // io.vertx.core.Handler completionHandler
        start local 6 // java.lang.ClassLoader tccl
        start local 7 // io.vertx.core.Verticle[] verticles
         0: .line 533
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getConfig:()Lio/vertx/core/json/JsonObject;
            ifnonnull 1
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getConfig:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.core.json.JsonObject.copy:()Lio/vertx/core/json/JsonObject;
      StackMap locals:
      StackMap stack: io.vertx.core.json.JsonObject
         2: astore 8 /* conf */
        start local 8 // io.vertx.core.json.JsonObject conf
         3: .line 534
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getWorkerPoolName:()Ljava/lang/String;
            astore 9 /* poolName */
        start local 9 // java.lang.String poolName
         4: .line 536
            aload 3 /* parentContext */
            invokeinterface io.vertx.core.impl.ContextInternal.getDeployment:()Lio/vertx/core/impl/Deployment;
            astore 10 /* parent */
        start local 10 // io.vertx.core.impl.Deployment parent
         5: .line 537
            aload 0 /* this */
            invokevirtual io.vertx.core.impl.DeploymentManager.generateDeploymentID:()Ljava/lang/String;
            astore 11 /* deploymentID */
        start local 11 // java.lang.String deploymentID
         6: .line 538
            new io.vertx.core.impl.DeploymentManager$DeploymentImpl
            dup
            aload 0 /* this */
            aload 10 /* parent */
            aload 11 /* deploymentID */
            aload 1 /* identifier */
            aload 2 /* options */
            invokespecial io.vertx.core.impl.DeploymentManager$DeploymentImpl.<init>:(Lio/vertx/core/impl/DeploymentManager;Lio/vertx/core/impl/Deployment;Ljava/lang/String;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;)V
            astore 12 /* deployment */
        start local 12 // io.vertx.core.impl.DeploymentManager$DeploymentImpl deployment
         7: .line 540
            new java.util.concurrent.atomic.AtomicInteger
            dup
            invokespecial java.util.concurrent.atomic.AtomicInteger.<init>:()V
            astore 13 /* deployCount */
        start local 13 // java.util.concurrent.atomic.AtomicInteger deployCount
         8: .line 541
            new java.util.concurrent.atomic.AtomicBoolean
            dup
            invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
            astore 14 /* failureReported */
        start local 14 // java.util.concurrent.atomic.AtomicBoolean failureReported
         9: .line 542
            aload 7 /* verticles */
            dup
            astore 18
            arraylength
            istore 17
            iconst_0
            istore 16
            goto 26
      StackMap locals: io.vertx.core.impl.DeploymentManager java.lang.String io.vertx.core.DeploymentOptions io.vertx.core.impl.ContextInternal io.vertx.core.impl.ContextInternal io.vertx.core.Handler java.lang.ClassLoader io.vertx.core.Verticle[] io.vertx.core.json.JsonObject java.lang.String io.vertx.core.impl.Deployment java.lang.String io.vertx.core.impl.DeploymentManager$DeploymentImpl java.util.concurrent.atomic.AtomicInteger java.util.concurrent.atomic.AtomicBoolean top int int io.vertx.core.Verticle[]
      StackMap stack:
        10: aload 18
            iload 16
            aaload
            astore 15 /* verticle */
        start local 15 // io.vertx.core.Verticle verticle
        11: .line 543
            aload 9 /* poolName */
            ifnull 12
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 9 /* poolName */
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getWorkerPoolSize:()I
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getMaxWorkerExecuteTime:()J
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.getMaxWorkerExecuteTimeUnit:()Ljava/util/concurrent/TimeUnit;
            invokeinterface io.vertx.core.impl.VertxInternal.createSharedWorkerExecutor:(Ljava/lang/String;IJLjava/util/concurrent/TimeUnit;)Lio/vertx/core/impl/WorkerExecutorInternal;
            goto 13
      StackMap locals: io.vertx.core.impl.DeploymentManager java.lang.String io.vertx.core.DeploymentOptions io.vertx.core.impl.ContextInternal io.vertx.core.impl.ContextInternal io.vertx.core.Handler java.lang.ClassLoader io.vertx.core.Verticle[] io.vertx.core.json.JsonObject java.lang.String io.vertx.core.impl.Deployment java.lang.String io.vertx.core.impl.DeploymentManager$DeploymentImpl java.util.concurrent.atomic.AtomicInteger java.util.concurrent.atomic.AtomicBoolean io.vertx.core.Verticle int int io.vertx.core.Verticle[]
      StackMap stack:
        12: aconst_null
      StackMap locals:
      StackMap stack: io.vertx.core.impl.WorkerExecutorInternal
        13: astore 19 /* workerExec */
        start local 19 // io.vertx.core.impl.WorkerExecutorInternal workerExec
        14: .line 544
            aload 19 /* workerExec */
            ifnull 15
            aload 19 /* workerExec */
            invokeinterface io.vertx.core.impl.WorkerExecutorInternal.getPool:()Lio/vertx/core/impl/WorkerPool;
            goto 16
      StackMap locals: io.vertx.core.impl.WorkerExecutorInternal
      StackMap stack:
        15: aconst_null
      StackMap locals:
      StackMap stack: io.vertx.core.impl.WorkerPool
        16: astore 20 /* pool */
        start local 20 // io.vertx.core.impl.WorkerPool pool
        17: .line 545
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.isWorker:()Z
            ifeq 18
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 2 /* options */
            invokevirtual io.vertx.core.DeploymentOptions.isMultiThreaded:()Z
            aload 11 /* deploymentID */
            aload 20 /* pool */
            aload 8 /* conf */
            aload 6 /* tccl */
            invokeinterface io.vertx.core.impl.VertxInternal.createWorkerContext:(ZLjava/lang/String;Lio/vertx/core/impl/WorkerPool;Lio/vertx/core/json/JsonObject;Ljava/lang/ClassLoader;)Lio/vertx/core/impl/ContextInternal;
            goto 19
        18: .line 546
      StackMap locals: io.vertx.core.impl.WorkerPool
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 11 /* deploymentID */
            aload 20 /* pool */
            aload 8 /* conf */
            aload 6 /* tccl */
            invokeinterface io.vertx.core.impl.VertxInternal.createEventLoopContext:(Ljava/lang/String;Lio/vertx/core/impl/WorkerPool;Lio/vertx/core/json/JsonObject;Ljava/lang/ClassLoader;)Lio/vertx/core/impl/ContextInternal;
        19: .line 545
      StackMap locals:
      StackMap stack: io.vertx.core.impl.ContextInternal
            checkcast io.vertx.core.impl.ContextImpl
            astore 21 /* context */
        start local 21 // io.vertx.core.impl.ContextImpl context
        20: .line 547
            aload 19 /* workerExec */
            ifnull 22
        21: .line 548
            aload 21 /* context */
            aload 19 /* workerExec */
            invokevirtual io.vertx.core.impl.ContextImpl.addCloseHook:(Lio/vertx/core/Closeable;)V
        22: .line 550
      StackMap locals: io.vertx.core.impl.ContextImpl
      StackMap stack:
            aload 21 /* context */
            aload 12 /* deployment */
            invokevirtual io.vertx.core.impl.ContextImpl.setDeployment:(Lio/vertx/core/impl/Deployment;)V
        23: .line 551
            aload 12 /* deployment */
            new io.vertx.core.impl.DeploymentManager$VerticleHolder
            dup
            aload 15 /* verticle */
            aload 21 /* context */
            invokespecial io.vertx.core.impl.DeploymentManager$VerticleHolder.<init>:(Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextImpl;)V
            invokevirtual io.vertx.core.impl.DeploymentManager$DeploymentImpl.addVerticle:(Lio/vertx/core/impl/DeploymentManager$VerticleHolder;)V
        24: .line 552
            aload 21 /* context */
            aload 0 /* this */
            aload 15 /* verticle */
            aload 21 /* context */
            aload 10 /* parent */
            aload 12 /* deployment */
            aload 11 /* deploymentID */
            aload 13 /* deployCount */
            aload 7 /* verticles */
            aload 4 /* callingContext */
            aload 5 /* completionHandler */
            aload 14 /* failureReported */
            invokedynamic handle(Lio/vertx/core/impl/DeploymentManager;Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextImpl;Lio/vertx/core/impl/Deployment;Lio/vertx/core/impl/DeploymentManager$DeploymentImpl;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicInteger;[Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicBoolean;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/impl/DeploymentManager.lambda$8(Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextImpl;Lio/vertx/core/impl/Deployment;Lio/vertx/core/impl/DeploymentManager$DeploymentImpl;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicInteger;[Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.core.impl.ContextImpl.runOnContext:(Lio/vertx/core/Handler;)V
        end local 21 // io.vertx.core.impl.ContextImpl context
        end local 20 // io.vertx.core.impl.WorkerPool pool
        end local 19 // io.vertx.core.impl.WorkerExecutorInternal workerExec
        end local 15 // io.vertx.core.Verticle verticle
        25: .line 542
            iinc 16 1
      StackMap locals: io.vertx.core.impl.DeploymentManager java.lang.String io.vertx.core.DeploymentOptions io.vertx.core.impl.ContextInternal io.vertx.core.impl.ContextInternal io.vertx.core.Handler java.lang.ClassLoader io.vertx.core.Verticle[] io.vertx.core.json.JsonObject java.lang.String io.vertx.core.impl.Deployment java.lang.String io.vertx.core.impl.DeploymentManager$DeploymentImpl java.util.concurrent.atomic.AtomicInteger java.util.concurrent.atomic.AtomicBoolean top int int io.vertx.core.Verticle[]
      StackMap stack:
        26: iload 16
            iload 17
            if_icmplt 10
        27: .line 587
            return
        end local 14 // java.util.concurrent.atomic.AtomicBoolean failureReported
        end local 13 // java.util.concurrent.atomic.AtomicInteger deployCount
        end local 12 // io.vertx.core.impl.DeploymentManager$DeploymentImpl deployment
        end local 11 // java.lang.String deploymentID
        end local 10 // io.vertx.core.impl.Deployment parent
        end local 9 // java.lang.String poolName
        end local 8 // io.vertx.core.json.JsonObject conf
        end local 7 // io.vertx.core.Verticle[] verticles
        end local 6 // java.lang.ClassLoader tccl
        end local 5 // io.vertx.core.Handler completionHandler
        end local 4 // io.vertx.core.impl.ContextInternal callingContext
        end local 3 // io.vertx.core.impl.ContextInternal parentContext
        end local 2 // io.vertx.core.DeploymentOptions options
        end local 1 // java.lang.String identifier
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   28     0               this  Lio/vertx/core/impl/DeploymentManager;
            0   28     1         identifier  Ljava/lang/String;
            0   28     2            options  Lio/vertx/core/DeploymentOptions;
            0   28     3      parentContext  Lio/vertx/core/impl/ContextInternal;
            0   28     4     callingContext  Lio/vertx/core/impl/ContextInternal;
            0   28     5  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;
            0   28     6               tccl  Ljava/lang/ClassLoader;
            0   28     7          verticles  [Lio/vertx/core/Verticle;
            3   28     8               conf  Lio/vertx/core/json/JsonObject;
            4   28     9           poolName  Ljava/lang/String;
            5   28    10             parent  Lio/vertx/core/impl/Deployment;
            6   28    11       deploymentID  Ljava/lang/String;
            7   28    12         deployment  Lio/vertx/core/impl/DeploymentManager$DeploymentImpl;
            8   28    13        deployCount  Ljava/util/concurrent/atomic/AtomicInteger;
            9   28    14    failureReported  Ljava/util/concurrent/atomic/AtomicBoolean;
           11   25    15           verticle  Lio/vertx/core/Verticle;
           14   25    19         workerExec  Lio/vertx/core/impl/WorkerExecutorInternal;
           17   25    20               pool  Lio/vertx/core/impl/WorkerPool;
           20   25    21            context  Lio/vertx/core/impl/ContextImpl;
    Signature: (Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/String;>;>;Ljava/lang/ClassLoader;[Lio/vertx/core/Verticle;)V
    MethodParameters:
                   Name  Flags
      identifier         
      options            
      parentContext      
      callingContext     
      completionHandler  
      tccl               
      verticles          

  private void lambda$1(java.lang.String, io.vertx.core.DeploymentOptions, io.vertx.core.Handler, io.vertx.core.spi.VerticleFactory, java.lang.ClassLoader, io.vertx.core.impl.ContextInternal, io.vertx.core.impl.ContextInternal, java.util.Iterator, io.vertx.core.AsyncResult);
    descriptor: (Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/Handler;Lio/vertx/core/spi/VerticleFactory;Ljava/lang/ClassLoader;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/util/Iterator;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=10, locals=13, args_size=10
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 9 // io.vertx.core.AsyncResult ar
         0: .line 185
            aload 9 /* ar */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 20
         1: .line 186
            aload 9 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 11 /* resolvedName */
        start local 11 // java.lang.String resolvedName
         2: .line 187
            aload 11 /* resolvedName */
            aload 1
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         3: .line 189
            aload 0 /* this */
            aload 11 /* resolvedName */
            aload 2
            aload 3
            invokevirtual io.vertx.core.impl.DeploymentManager.deployVerticle:(Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/Handler;)V
         4: .line 190
            goto 8
      StackMap locals: io.vertx.core.impl.DeploymentManager java.lang.String io.vertx.core.DeploymentOptions io.vertx.core.Handler io.vertx.core.spi.VerticleFactory java.lang.ClassLoader io.vertx.core.impl.ContextInternal io.vertx.core.impl.ContextInternal java.util.Iterator io.vertx.core.AsyncResult top java.lang.String
      StackMap stack: java.lang.Exception
         5: astore 12 /* e */
        start local 12 // java.lang.Exception e
         6: .line 191
            aload 3
            ifnull 8
         7: .line 192
            aload 3
            aload 12 /* e */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 12 // java.lang.Exception e
         8: .line 195
      StackMap locals:
      StackMap stack:
            return
         9: .line 197
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface io.vertx.core.spi.VerticleFactory.blockingCreate:()Z
            ifeq 14
        10: .line 198
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 0 /* this */
            aload 4
            aload 1
            aload 2
            aload 5
            invokedynamic handle(Lio/vertx/core/impl/DeploymentManager;Lio/vertx/core/spi/VerticleFactory;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Ljava/lang/ClassLoader;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/impl/DeploymentManager.lambda$2(Lio/vertx/core/spi/VerticleFactory;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Ljava/lang/ClassLoader;Lio/vertx/core/Promise;)V (7)
                  (Lio/vertx/core/Promise;)V
        11: .line 205
            aload 0 /* this */
            aload 1
            aload 2
            aload 6
            aload 7
            aload 3
            aload 5
            aload 8
            invokedynamic handle(Lio/vertx/core/impl/DeploymentManager;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/lang/ClassLoader;Ljava/util/Iterator;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/impl/DeploymentManager.lambda$3(Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/lang/ClassLoader;Ljava/util/Iterator;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
        12: .line 198
            invokeinterface io.vertx.core.impl.VertxInternal.executeBlocking:(Lio/vertx/core/Handler;Lio/vertx/core/Handler;)V
        13: .line 213
            return
        14: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4
            aload 1
            aload 2
            invokevirtual io.vertx.core.DeploymentOptions.getInstances:()I
            aload 5
            invokevirtual io.vertx.core.impl.DeploymentManager.createVerticles:(Lio/vertx/core/spi/VerticleFactory;Ljava/lang/String;ILjava/lang/ClassLoader;)[Lio/vertx/core/Verticle;
            astore 12 /* verticles */
        start local 12 // io.vertx.core.Verticle[] verticles
        15: .line 217
            aload 0 /* this */
            aload 1
            aload 2
            aload 6
            aload 7
            aload 3
            aload 5
            aload 12 /* verticles */
            invokevirtual io.vertx.core.impl.DeploymentManager.doDeploy:(Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/lang/ClassLoader;[Lio/vertx/core/Verticle;)V
        16: .line 218
            return
        end local 12 // io.vertx.core.Verticle[] verticles
        17: .line 219
      StackMap locals:
      StackMap stack: java.lang.Exception
            astore 12 /* e */
        start local 12 // java.lang.Exception e
        18: .line 220
            aload 12 /* e */
            astore 10 /* err */
        end local 12 // java.lang.Exception e
        end local 11 // java.lang.String resolvedName
        start local 10 // java.lang.Throwable err
        19: .line 224
            goto 21
        end local 10 // java.lang.Throwable err
        20: .line 225
      StackMap locals: io.vertx.core.impl.DeploymentManager java.lang.String io.vertx.core.DeploymentOptions io.vertx.core.Handler io.vertx.core.spi.VerticleFactory java.lang.ClassLoader io.vertx.core.impl.ContextInternal io.vertx.core.impl.ContextInternal java.util.Iterator io.vertx.core.AsyncResult
      StackMap stack:
            aload 9 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            astore 10 /* err */
        start local 10 // java.lang.Throwable err
        21: .line 228
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            aload 8
            aload 10 /* err */
            aload 1
            aload 2
            aload 6
            aload 7
            aload 5
            aload 3
            invokevirtual io.vertx.core.impl.DeploymentManager.doDeployVerticle:(Ljava/util/Iterator;Ljava/lang/Throwable;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/lang/ClassLoader;Lio/vertx/core/Handler;)V
        end local 10 // java.lang.Throwable err
        22: .line 229
            return
        end local 9 // io.vertx.core.AsyncResult ar
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0          this  Lio/vertx/core/impl/DeploymentManager;
            0   23     9            ar  Lio/vertx/core/AsyncResult<Ljava/lang/String;>;
           19   20    10           err  Ljava/lang/Throwable;
           21   22    10           err  Ljava/lang/Throwable;
            2   19    11  resolvedName  Ljava/lang/String;
            6    8    12             e  Ljava/lang/Exception;
           15   17    12     verticles  [Lio/vertx/core/Verticle;
           18   19    12             e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.Exception
          14    16      17  Class java.lang.Exception

  private static void lambda$4(java.util.concurrent.atomic.AtomicInteger, java.util.Set, io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Ljava/util/concurrent/atomic/AtomicInteger;Ljava/util/Set;Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=4
        start local 3 // io.vertx.core.AsyncResult ar
         0: .line 290
            aload 3 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 2
         1: .line 292
            getstatic io.vertx.core.impl.DeploymentManager.log:Lio/vertx/core/logging/Logger;
            ldc "Undeploy failed"
            aload 3 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         2: .line 294
      StackMap locals:
      StackMap stack:
            aload 0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            aload 1
            invokeinterface java.util.Set.size:()I
            if_icmpne 4
         3: .line 295
            aload 2
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         4: .line 297
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     3    ar  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private static void lambda$5(io.vertx.core.Handler, java.lang.Void);
    descriptor: (Lio/vertx/core/Handler;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.Void v
         0: .line 301
            aload 0
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
            return
        end local 1 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     v  Ljava/lang/Void;

  private static int lambda$6(io.vertx.core.spi.VerticleFactory, io.vertx.core.spi.VerticleFactory);
    descriptor: (Lio/vertx/core/spi/VerticleFactory;Lio/vertx/core/spi/VerticleFactory;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.spi.VerticleFactory fact1
        start local 1 // io.vertx.core.spi.VerticleFactory fact2
         0: .line 320
            aload 0 /* fact1 */
            invokeinterface io.vertx.core.spi.VerticleFactory.order:()I
            aload 1 /* fact2 */
            invokeinterface io.vertx.core.spi.VerticleFactory.order:()I
            isub
            ireturn
        end local 1 // io.vertx.core.spi.VerticleFactory fact2
        end local 0 // io.vertx.core.spi.VerticleFactory fact1
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  fact1  Lio/vertx/core/spi/VerticleFactory;
            0    1     1  fact2  Lio/vertx/core/spi/VerticleFactory;

  private static void lambda$7(io.vertx.core.Handler, io.vertx.core.AsyncResult, java.lang.Void);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=3
        start local 2 // java.lang.Void v
         0: .line 519
            aload 0
            aload 1
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         1: .line 520
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 3 /* t */
        start local 3 // java.lang.Throwable t
         3: .line 521
            getstatic io.vertx.core.impl.DeploymentManager.log:Lio/vertx/core/logging/Logger;
            ldc "Failure in calling handler"
            aload 3 /* t */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         4: .line 522
            aload 3 /* t */
            athrow
        end local 3 // java.lang.Throwable t
         5: .line 524
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     2     v  Ljava/lang/Void;
            3    5     3     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable

  private void lambda$8(io.vertx.core.Verticle, io.vertx.core.impl.ContextImpl, io.vertx.core.impl.Deployment, io.vertx.core.impl.DeploymentManager$DeploymentImpl, java.lang.String, java.util.concurrent.atomic.AtomicInteger, io.vertx.core.Verticle[], io.vertx.core.impl.ContextInternal, io.vertx.core.Handler, java.util.concurrent.atomic.AtomicBoolean, java.lang.Void);
    descriptor: (Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextImpl;Lio/vertx/core/impl/Deployment;Lio/vertx/core/impl/DeploymentManager$DeploymentImpl;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicInteger;[Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=12, locals=14, args_size=12
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 11 // java.lang.Void v
         0: .line 554
            aload 1
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            aload 2
            invokeinterface io.vertx.core.Verticle.init:(Lio/vertx/core/Vertx;Lio/vertx/core/Context;)V
         1: .line 555
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 12 /* startPromise */
        start local 12 // io.vertx.core.Promise startPromise
         2: .line 556
            aload 12 /* startPromise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            astore 13 /* startFuture */
        start local 13 // io.vertx.core.Future startFuture
         3: .line 557
            aload 1
            aload 12 /* startPromise */
            invokeinterface io.vertx.core.Verticle.start:(Lio/vertx/core/Promise;)V
         4: .line 558
            aload 13 /* startFuture */
            aload 0 /* this */
            aload 3
            aload 4
            aload 1
            aload 5
            aload 6
            aload 7
            aload 8
            aload 9
            aload 10
            aload 2
            invokedynamic handle(Lio/vertx/core/impl/DeploymentManager;Lio/vertx/core/impl/Deployment;Lio/vertx/core/impl/DeploymentManager$DeploymentImpl;Lio/vertx/core/Verticle;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicInteger;[Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicBoolean;Lio/vertx/core/impl/ContextImpl;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/impl/DeploymentManager.lambda$9(Lio/vertx/core/impl/Deployment;Lio/vertx/core/impl/DeploymentManager$DeploymentImpl;Lio/vertx/core/Verticle;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicInteger;[Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicBoolean;Lio/vertx/core/impl/ContextImpl;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.core.Future.setHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
        end local 13 // io.vertx.core.Future startFuture
        end local 12 // io.vertx.core.Promise startPromise
         5: .line 581
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 12 /* t */
        start local 12 // java.lang.Throwable t
         7: .line 582
            aload 10
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifeq 9
         8: .line 583
            aload 4
            aload 8
            aload 9
            aload 2
            aload 12 /* t */
            invokevirtual io.vertx.core.impl.DeploymentManager$DeploymentImpl.rollback:(Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Lio/vertx/core/impl/ContextImpl;Ljava/lang/Throwable;)V
        end local 12 // java.lang.Throwable t
         9: .line 585
      StackMap locals:
      StackMap stack:
            return
        end local 11 // java.lang.Void v
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   10     0          this  Lio/vertx/core/impl/DeploymentManager;
            0   10    11             v  Ljava/lang/Void;
            2    5    12  startPromise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
            3    5    13   startFuture  Lio/vertx/core/Future<Ljava/lang/Void;>;
            7    9    12             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Throwable

  private void lambda$2(io.vertx.core.spi.VerticleFactory, java.lang.String, io.vertx.core.DeploymentOptions, java.lang.ClassLoader, io.vertx.core.Promise);
    descriptor: (Lio/vertx/core/spi/VerticleFactory;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Ljava/lang/ClassLoader;Lio/vertx/core/Promise;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=7, args_size=6
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 5 // io.vertx.core.Promise createFut
         0: .line 200
            aload 0 /* this */
            aload 1
            aload 2
            aload 3
            invokevirtual io.vertx.core.DeploymentOptions.getInstances:()I
            aload 4
            invokevirtual io.vertx.core.impl.DeploymentManager.createVerticles:(Lio/vertx/core/spi/VerticleFactory;Ljava/lang/String;ILjava/lang/ClassLoader;)[Lio/vertx/core/Verticle;
            astore 6 /* verticles */
        start local 6 // io.vertx.core.Verticle[] verticles
         1: .line 201
            aload 5 /* createFut */
            aload 6 /* verticles */
            invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
        end local 6 // io.vertx.core.Verticle[] verticles
         2: .line 202
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Exception
         3: astore 6 /* e */
        start local 6 // java.lang.Exception e
         4: .line 203
            aload 5 /* createFut */
            aload 6 /* e */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
        end local 6 // java.lang.Exception e
         5: .line 205
      StackMap locals:
      StackMap stack:
            return
        end local 5 // io.vertx.core.Promise createFut
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lio/vertx/core/impl/DeploymentManager;
            0    6     5  createFut  Lio/vertx/core/Promise<[Lio/vertx/core/Verticle;>;
            1    2     6  verticles  [Lio/vertx/core/Verticle;
            4    5     6          e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.Exception

  private void lambda$3(java.lang.String, io.vertx.core.DeploymentOptions, io.vertx.core.impl.ContextInternal, io.vertx.core.impl.ContextInternal, io.vertx.core.Handler, java.lang.ClassLoader, java.util.Iterator, io.vertx.core.AsyncResult);
    descriptor: (Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/lang/ClassLoader;Ljava/util/Iterator;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=9, locals=9, args_size=9
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 8 // io.vertx.core.AsyncResult res
         0: .line 206
            aload 8 /* res */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 3
         1: .line 207
            aload 0 /* this */
            aload 1
            aload 2
            aload 3
            aload 4
            aload 5
            aload 6
            aload 8 /* res */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.core.Verticle[]
            invokevirtual io.vertx.core.impl.DeploymentManager.doDeploy:(Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/lang/ClassLoader;[Lio/vertx/core/Verticle;)V
         2: .line 208
            goto 4
         3: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 7
            aload 8 /* res */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            aload 1
            aload 2
            aload 3
            aload 4
            aload 6
            aload 5
            invokevirtual io.vertx.core.impl.DeploymentManager.doDeployVerticle:(Ljava/util/Iterator;Ljava/lang/Throwable;Ljava/lang/String;Lio/vertx/core/DeploymentOptions;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/impl/ContextInternal;Ljava/lang/ClassLoader;Lio/vertx/core/Handler;)V
         4: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 8 // io.vertx.core.AsyncResult res
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/core/impl/DeploymentManager;
            0    5     8   res  Lio/vertx/core/AsyncResult<[Lio/vertx/core/Verticle;>;

  private void lambda$9(io.vertx.core.impl.Deployment, io.vertx.core.impl.DeploymentManager$DeploymentImpl, io.vertx.core.Verticle, java.lang.String, java.util.concurrent.atomic.AtomicInteger, io.vertx.core.Verticle[], io.vertx.core.impl.ContextInternal, io.vertx.core.Handler, java.util.concurrent.atomic.AtomicBoolean, io.vertx.core.impl.ContextImpl, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/impl/Deployment;Lio/vertx/core/impl/DeploymentManager$DeploymentImpl;Lio/vertx/core/Verticle;Ljava/lang/String;Ljava/util/concurrent/atomic/AtomicInteger;[Lio/vertx/core/Verticle;Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Ljava/util/concurrent/atomic/AtomicBoolean;Lio/vertx/core/impl/ContextImpl;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=13, args_size=12
        start local 0 // io.vertx.core.impl.DeploymentManager this
        start local 11 // io.vertx.core.AsyncResult ar
         0: .line 559
            aload 11 /* ar */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 14
         1: .line 560
            aload 1
            ifnull 7
         2: .line 561
            aload 1
            aload 2
            invokeinterface io.vertx.core.impl.Deployment.addChild:(Lio/vertx/core/impl/Deployment;)Z
            ifeq 5
         3: .line 562
            aload 2
            iconst_1
            putfield io.vertx.core.impl.DeploymentManager$DeploymentImpl.child:Z
         4: .line 563
            goto 7
         5: .line 565
      StackMap locals:
      StackMap stack:
            aload 2
            aconst_null
            invokevirtual io.vertx.core.impl.DeploymentManager$DeploymentImpl.undeploy:(Lio/vertx/core/Handler;)V
         6: .line 566
            return
         7: .line 569
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.vertx:Lio/vertx/core/impl/VertxInternal;
            invokeinterface io.vertx.core.impl.VertxInternal.metricsSPI:()Lio/vertx/core/spi/metrics/VertxMetrics;
            astore 12 /* metrics */
        start local 12 // io.vertx.core.spi.metrics.VertxMetrics metrics
         8: .line 570
            aload 12 /* metrics */
            ifnull 10
         9: .line 571
            aload 12 /* metrics */
            aload 3
            invokeinterface io.vertx.core.spi.metrics.VertxMetrics.verticleDeployed:(Lio/vertx/core/Verticle;)V
        10: .line 573
      StackMap locals: io.vertx.core.spi.metrics.VertxMetrics
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.impl.DeploymentManager.deployments:Ljava/util/Map;
            aload 4
            aload 2
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        11: .line 574
            aload 5
            invokevirtual java.util.concurrent.atomic.AtomicInteger.incrementAndGet:()I
            aload 6
            arraylength
            if_icmpne 16
        12: .line 575
            aload 0 /* this */
            aload 4
            aload 7
            aload 8
            invokevirtual io.vertx.core.impl.DeploymentManager.reportSuccess:(Ljava/lang/Object;Lio/vertx/core/Context;Lio/vertx/core/Handler;)V
        end local 12 // io.vertx.core.spi.metrics.VertxMetrics metrics
        13: .line 577
            goto 16
      StackMap locals:
      StackMap stack:
        14: aload 9
            iconst_0
            iconst_1
            invokevirtual java.util.concurrent.atomic.AtomicBoolean.compareAndSet:(ZZ)Z
            ifeq 16
        15: .line 578
            aload 2
            aload 7
            aload 8
            aload 10
            aload 11 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokevirtual io.vertx.core.impl.DeploymentManager$DeploymentImpl.rollback:(Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/Handler;Lio/vertx/core/impl/ContextImpl;Ljava/lang/Throwable;)V
        16: .line 580
      StackMap locals:
      StackMap stack:
            return
        end local 11 // io.vertx.core.AsyncResult ar
        end local 0 // io.vertx.core.impl.DeploymentManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lio/vertx/core/impl/DeploymentManager;
            0   17    11       ar  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;
            8   13    12  metrics  Lio/vertx/core/spi/metrics/VertxMetrics;
}
SourceFile: "DeploymentManager.java"
NestMembers:
  io.vertx.core.impl.DeploymentManager$DeploymentImpl  io.vertx.core.impl.DeploymentManager$VerticleHolder
InnerClasses:
  private DeploymentImpl = io.vertx.core.impl.DeploymentManager$DeploymentImpl of io.vertx.core.impl.DeploymentManager
  VerticleHolder = io.vertx.core.impl.DeploymentManager$VerticleHolder of io.vertx.core.impl.DeploymentManager
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map