public class io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint
  super_class: java.lang.Object
{
  public static final java.lang.String DEFAULT_ROOT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "/discovery"

  private final io.vertx.servicediscovery.ServiceDiscovery discovery;
    descriptor: Lio/vertx/servicediscovery/ServiceDiscovery;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint create(io.vertx.ext.web.Router, io.vertx.servicediscovery.ServiceDiscovery);
    descriptor: (Lio/vertx/ext/web/Router;Lio/vertx/servicediscovery/ServiceDiscovery;)Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.vertx.ext.web.Router router
        start local 1 // io.vertx.servicediscovery.ServiceDiscovery discovery
         0: .line 51
            new io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint
            dup
            aload 0 /* router */
            aload 1 /* discovery */
            ldc "/discovery"
            invokespecial io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint.<init>:(Lio/vertx/ext/web/Router;Lio/vertx/servicediscovery/ServiceDiscovery;Ljava/lang/String;)V
            areturn
        end local 1 // io.vertx.servicediscovery.ServiceDiscovery discovery
        end local 0 // io.vertx.ext.web.Router router
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0     router  Lio/vertx/ext/web/Router;
            0    1     1  discovery  Lio/vertx/servicediscovery/ServiceDiscovery;
    MethodParameters:
           Name  Flags
      router     
      discovery  

  public static io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint create(io.vertx.ext.web.Router, io.vertx.servicediscovery.ServiceDiscovery, java.lang.String);
    descriptor: (Lio/vertx/ext/web/Router;Lio/vertx/servicediscovery/ServiceDiscovery;Ljava/lang/String;)Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.ext.web.Router router
        start local 1 // io.vertx.servicediscovery.ServiceDiscovery discovery
        start local 2 // java.lang.String root
         0: .line 63
            new io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint
            dup
            aload 0 /* router */
            aload 1 /* discovery */
            aload 2 /* root */
            invokespecial io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint.<init>:(Lio/vertx/ext/web/Router;Lio/vertx/servicediscovery/ServiceDiscovery;Ljava/lang/String;)V
            areturn
        end local 2 // java.lang.String root
        end local 1 // io.vertx.servicediscovery.ServiceDiscovery discovery
        end local 0 // io.vertx.ext.web.Router router
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0     router  Lio/vertx/ext/web/Router;
            0    1     1  discovery  Lio/vertx/servicediscovery/ServiceDiscovery;
            0    1     2       root  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      router     
      discovery  
      root       

  private void <init>(io.vertx.ext.web.Router, io.vertx.servicediscovery.ServiceDiscovery, java.lang.String);
    descriptor: (Lio/vertx/ext/web/Router;Lio/vertx/servicediscovery/ServiceDiscovery;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
        start local 1 // io.vertx.ext.web.Router router
        start local 2 // io.vertx.servicediscovery.ServiceDiscovery discovery
        start local 3 // java.lang.String root
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 1 /* router */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 75
            aload 2 /* discovery */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 76
            aload 3 /* root */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 77
            aload 0 /* this */
            aload 2 /* discovery */
            putfield io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint.discovery:Lio/vertx/servicediscovery/ServiceDiscovery;
         5: .line 78
            aload 0 /* this */
            aload 1 /* router */
            aload 3 /* root */
            invokevirtual io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint.registerRoutes:(Lio/vertx/ext/web/Router;Ljava/lang/String;)V
         6: .line 79
            return
        end local 3 // java.lang.String root
        end local 2 // io.vertx.servicediscovery.ServiceDiscovery discovery
        end local 1 // io.vertx.ext.web.Router router
        end local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;
            0    7     1     router  Lio/vertx/ext/web/Router;
            0    7     2  discovery  Lio/vertx/servicediscovery/ServiceDiscovery;
            0    7     3       root  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      router     
      discovery  
      root       

  private void registerRoutes(io.vertx.ext.web.Router, java.lang.String);
    descriptor: (Lio/vertx/ext/web/Router;Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
        start local 1 // io.vertx.ext.web.Router router
        start local 2 // java.lang.String root
         0: .line 90
            aload 1 /* router */
            aload 2 /* root */
            invokeinterface io.vertx.ext.web.Router.get:(Ljava/lang/String;)Lio/vertx/ext/web/Route;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.all(Lio/vertx/ext/web/RoutingContext;)V (7)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
            pop
         1: .line 93
            aload 1 /* router */
            new java.lang.StringBuilder
            dup
            aload 2 /* root */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/:uuid"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.ext.web.Router.get:(Ljava/lang/String;)Lio/vertx/ext/web/Route;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.one(Lio/vertx/ext/web/RoutingContext;)V (7)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
            pop
         2: .line 96
            aload 1 /* router */
            new java.lang.StringBuilder
            dup
            aload 2 /* root */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/:uuid"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.ext.web.Router.delete:(Ljava/lang/String;)Lio/vertx/ext/web/Route;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.unpublish(Lio/vertx/ext/web/RoutingContext;)V (7)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
            pop
         3: .line 99
            aload 1 /* router */
            invokeinterface io.vertx.ext.web.Router.route:()Lio/vertx/ext/web/Route;
            invokestatic io.vertx.ext.web.handler.BodyHandler.create:()Lio/vertx/ext/web/handler/BodyHandler;
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
            pop
         4: .line 100
            aload 1 /* router */
            aload 2 /* root */
            invokeinterface io.vertx.ext.web.Router.post:(Ljava/lang/String;)Lio/vertx/ext/web/Route;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.publish(Lio/vertx/ext/web/RoutingContext;)V (7)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
            pop
         5: .line 103
            aload 1 /* router */
            new java.lang.StringBuilder
            dup
            aload 2 /* root */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "/:uuid"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface io.vertx.ext.web.Router.put:(Ljava/lang/String;)Lio/vertx/ext/web/Route;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.update(Lio/vertx/ext/web/RoutingContext;)V (7)
                  (Lio/vertx/ext/web/RoutingContext;)V
            invokeinterface io.vertx.ext.web.Route.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/web/Route;
            pop
         6: .line 104
            return
        end local 2 // java.lang.String root
        end local 1 // io.vertx.ext.web.Router router
        end local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;
            0    7     1  router  Lio/vertx/ext/web/Router;
            0    7     2    root  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      router  
      root    

  private void update(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
        start local 1 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 108
            aload 1 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            ldc "uuid"
            invokeinterface io.vertx.core.http.HttpServerRequest.getParam:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* uuid */
        start local 2 // java.lang.String uuid
         1: .line 109
            aload 1 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.getBodyAsJson:()Lio/vertx/core/json/JsonObject;
            astore 3 /* json */
        start local 3 // io.vertx.core.json.JsonObject json
         2: .line 110
            new io.vertx.servicediscovery.Record
            dup
            aload 3 /* json */
            invokespecial io.vertx.servicediscovery.Record.<init>:(Lio/vertx/core/json/JsonObject;)V
            astore 4 /* record */
        start local 4 // io.vertx.servicediscovery.Record record
         3: .line 112
            aload 2 /* uuid */
            aload 4 /* record */
            invokevirtual io.vertx.servicediscovery.Record.getRegistration:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
         4: .line 113
            aload 1 /* routingContext */
            sipush 400
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(I)V
         5: .line 114
            return
         6: .line 117
      StackMap locals: java.lang.String io.vertx.core.json.JsonObject io.vertx.servicediscovery.Record
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint.discovery:Lio/vertx/servicediscovery/ServiceDiscovery;
            aload 4 /* record */
            aload 1 /* routingContext */
            invokedynamic handle(Lio/vertx/ext/web/RoutingContext;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.lambda$5(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.servicediscovery.ServiceDiscovery.update:(Lio/vertx/servicediscovery/Record;Lio/vertx/core/Handler;)V
         7: .line 126
            return
        end local 4 // io.vertx.servicediscovery.Record record
        end local 3 // io.vertx.core.json.JsonObject json
        end local 2 // java.lang.String uuid
        end local 1 // io.vertx.ext.web.RoutingContext routingContext
        end local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0            this  Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;
            0    8     1  routingContext  Lio/vertx/ext/web/RoutingContext;
            1    8     2            uuid  Ljava/lang/String;
            2    8     3            json  Lio/vertx/core/json/JsonObject;
            3    8     4          record  Lio/vertx/servicediscovery/Record;
    MethodParameters:
                Name  Flags
      routingContext  

  private void unpublish(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
        start local 1 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 129
            aload 1 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            ldc "uuid"
            invokeinterface io.vertx.core.http.HttpServerRequest.getParam:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* uuid */
        start local 2 // java.lang.String uuid
         1: .line 130
            aload 0 /* this */
            getfield io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint.discovery:Lio/vertx/servicediscovery/ServiceDiscovery;
            aload 2 /* uuid */
            aload 1 /* routingContext */
            invokedynamic handle(Lio/vertx/ext/web/RoutingContext;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.lambda$6(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.servicediscovery.ServiceDiscovery.unpublish:(Ljava/lang/String;Lio/vertx/core/Handler;)V
         2: .line 137
            return
        end local 2 // java.lang.String uuid
        end local 1 // io.vertx.ext.web.RoutingContext routingContext
        end local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;
            0    3     1  routingContext  Lio/vertx/ext/web/RoutingContext;
            1    3     2            uuid  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      routingContext  

  private void one(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
        start local 1 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 140
            aload 0 /* this */
            getfield io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint.discovery:Lio/vertx/servicediscovery/ServiceDiscovery;
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            ldc "registration"
            aload 1 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            ldc "uuid"
            invokeinterface io.vertx.core.http.HttpServerRequest.getParam:(Ljava/lang/String;)Ljava/lang/String;
            invokevirtual io.vertx.core.json.JsonObject.put:(Ljava/lang/String;Ljava/lang/Object;)Lio/vertx/core/json/JsonObject;
            aload 1 /* routingContext */
            invokedynamic handle(Lio/vertx/ext/web/RoutingContext;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.lambda$7(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.servicediscovery.ServiceDiscovery.getRecord:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)V
         1: .line 153
            return
        end local 1 // io.vertx.ext.web.RoutingContext routingContext
        end local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;
            0    2     1  routingContext  Lio/vertx/ext/web/RoutingContext;
    MethodParameters:
                Name  Flags
      routingContext  

  private void publish(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
        start local 1 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 156
            aload 1 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.getBodyAsJson:()Lio/vertx/core/json/JsonObject;
            astore 2 /* json */
        start local 2 // io.vertx.core.json.JsonObject json
         1: .line 157
            new io.vertx.servicediscovery.Record
            dup
            aload 2 /* json */
            invokespecial io.vertx.servicediscovery.Record.<init>:(Lio/vertx/core/json/JsonObject;)V
            astore 3 /* record */
        start local 3 // io.vertx.servicediscovery.Record record
         2: .line 158
            aload 0 /* this */
            getfield io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint.discovery:Lio/vertx/servicediscovery/ServiceDiscovery;
            aload 3 /* record */
            aload 1 /* routingContext */
            invokedynamic handle(Lio/vertx/ext/web/RoutingContext;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.lambda$8(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.servicediscovery.ServiceDiscovery.publish:(Lio/vertx/servicediscovery/Record;Lio/vertx/core/Handler;)V
         3: .line 167
            return
        end local 3 // io.vertx.servicediscovery.Record record
        end local 2 // io.vertx.core.json.JsonObject json
        end local 1 // io.vertx.ext.web.RoutingContext routingContext
        end local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;
            0    4     1  routingContext  Lio/vertx/ext/web/RoutingContext;
            1    4     2            json  Lio/vertx/core/json/JsonObject;
            2    4     3          record  Lio/vertx/servicediscovery/Record;
    MethodParameters:
                Name  Flags
      routingContext  

  private void all(io.vertx.ext.web.RoutingContext);
    descriptor: (Lio/vertx/ext/web/RoutingContext;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
        start local 1 // io.vertx.ext.web.RoutingContext routingContext
         0: .line 171
            aload 1 /* routingContext */
            invokeinterface io.vertx.ext.web.RoutingContext.request:()Lio/vertx/core/http/HttpServerRequest;
            invokeinterface io.vertx.core.http.HttpServerRequest.params:()Lio/vertx/core/MultiMap;
            ldc "query"
            invokeinterface io.vertx.core.MultiMap.get:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* query */
        start local 2 // java.lang.String query
         1: .line 172
            new io.vertx.core.json.JsonObject
            dup
            invokespecial io.vertx.core.json.JsonObject.<init>:()V
            astore 3 /* filter */
        start local 3 // io.vertx.core.json.JsonObject filter
         2: .line 173
            aload 2 /* query */
            ifnull 9
         3: .line 175
            aload 2 /* query */
            ldc "UTF-8"
            invokestatic java.net.URLDecoder.decode:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* decoded */
        start local 4 // java.lang.String decoded
         4: .line 176
            new io.vertx.core.json.JsonObject
            dup
            aload 4 /* decoded */
            invokespecial io.vertx.core.json.JsonObject.<init>:(Ljava/lang/String;)V
            astore 3 /* filter */
        end local 4 // java.lang.String decoded
         5: .line 177
            goto 9
      StackMap locals: io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint io.vertx.ext.web.RoutingContext java.lang.String io.vertx.core.json.JsonObject
      StackMap stack: java.io.UnsupportedEncodingException
         6: astore 4 /* e */
        start local 4 // java.io.UnsupportedEncodingException e
         7: .line 178
            aload 1 /* routingContext */
            aload 4 /* e */
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         8: .line 179
            return
        end local 4 // java.io.UnsupportedEncodingException e
         9: .line 182
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint.discovery:Lio/vertx/servicediscovery/ServiceDiscovery;
            aload 3 /* filter */
            aload 1 /* routingContext */
            invokedynamic handle(Lio/vertx/ext/web/RoutingContext;)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/servicediscovery/rest/ServiceDiscoveryRestEndpoint.lambda$9(Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.servicediscovery.ServiceDiscovery.getRecords:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)V
        10: .line 192
            return
        end local 3 // io.vertx.core.json.JsonObject filter
        end local 2 // java.lang.String query
        end local 1 // io.vertx.ext.web.RoutingContext routingContext
        end local 0 // io.vertx.servicediscovery.rest.ServiceDiscoveryRestEndpoint this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lio/vertx/servicediscovery/rest/ServiceDiscoveryRestEndpoint;
            0   11     1  routingContext  Lio/vertx/ext/web/RoutingContext;
            1   11     2           query  Ljava/lang/String;
            2   11     3          filter  Lio/vertx/core/json/JsonObject;
            4    5     4         decoded  Ljava/lang/String;
            7    9     4               e  Ljava/io/UnsupportedEncodingException;
      Exception table:
        from    to  target  type
           3     5       6  Class java.io.UnsupportedEncodingException
    MethodParameters:
                Name  Flags
      routingContext  

  private static void lambda$5(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 118
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 119
            aload 0
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         2: .line 120
            goto 6
         3: .line 121
      StackMap locals:
      StackMap stack:
            aload 0
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            sipush 200
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
         4: .line 122
            ldc "Content-Type"
            ldc "application/json"
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
         5: .line 123
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.servicediscovery.Record
            invokevirtual io.vertx.servicediscovery.Record.toJson:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.core.json.JsonObject.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:(Ljava/lang/String;)Lio/vertx/core/Future;
            pop
         6: .line 125
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     1    ar  Lio/vertx/core/AsyncResult<Lio/vertx/servicediscovery/Record;>;

  private static void lambda$6(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 131
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 132
            aload 0
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         2: .line 133
            goto 4
         3: .line 134
      StackMap locals:
      StackMap stack:
            aload 0
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            sipush 204
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:()Lio/vertx/core/Future;
            pop
         4: .line 136
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     1    ar  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private static void lambda$7(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 141
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 142
            aload 0
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         2: .line 143
            goto 9
         3: .line 144
      StackMap locals:
      StackMap stack:
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            ifnonnull 6
         4: .line 145
            aload 0
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            sipush 404
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:()Lio/vertx/core/Future;
            pop
         5: .line 146
            goto 9
         6: .line 147
      StackMap locals:
      StackMap stack:
            aload 0
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            sipush 200
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
         7: .line 148
            ldc "Content-Type"
            ldc "application/json"
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
         8: .line 149
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.servicediscovery.Record
            invokevirtual io.vertx.servicediscovery.Record.toJson:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.core.json.JsonObject.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:(Ljava/lang/String;)Lio/vertx/core/Future;
            pop
         9: .line 152
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     1    ar  Lio/vertx/core/AsyncResult<Lio/vertx/servicediscovery/Record;>;

  private static void lambda$8(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 159
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 160
            aload 0
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         2: .line 161
            goto 6
         3: .line 162
      StackMap locals:
      StackMap stack:
            aload 0
            invokeinterface io.vertx.ext.web.RoutingContext.response:()Lio/vertx/core/http/HttpServerResponse;
            sipush 201
            invokeinterface io.vertx.core.http.HttpServerResponse.setStatusCode:(I)Lio/vertx/core/http/HttpServerResponse;
         4: .line 163
            ldc "Content-Type"
            ldc "application/json"
            invokeinterface io.vertx.core.http.HttpServerResponse.putHeader:(Ljava/lang/String;Ljava/lang/String;)Lio/vertx/core/http/HttpServerResponse;
         5: .line 164
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.servicediscovery.Record
            invokevirtual io.vertx.servicediscovery.Record.toJson:()Lio/vertx/core/json/JsonObject;
            invokevirtual io.vertx.core.json.JsonObject.toString:()Ljava/lang/String;
            invokeinterface io.vertx.core.http.HttpServerResponse.end:(Ljava/lang/String;)Lio/vertx/core/Future;
            pop
         6: .line 166
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     1    ar  Lio/vertx/core/AsyncResult<Lio/vertx/servicediscovery/Record;>;

  private static void lambda$9(io.vertx.ext.web.RoutingContext, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/ext/web/RoutingContext;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=2
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 183
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 184
            aload 0
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokeinterface io.vertx.ext.web.RoutingContext.fail:(Ljava/lang/Throwable;)V
         2: .line 185
            goto 8
         3: .line 186
      StackMap locals:
      StackMap stack:
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast java.util.List
            invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
         4: .line 187
            invokedynamic apply()Ljava/util/function/Function;
              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;
                  io/vertx/servicediscovery/Record.toJson()Lio/vertx/core/json/JsonObject; (5)
                  (Lio/vertx/servicediscovery/Record;)Lio/vertx/core/json/JsonObject;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         5: .line 188
            invokedynamic get()Ljava/util/function/Supplier;
              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;
                  io/vertx/core/json/JsonArray.<init>()V (8)
                  ()Lio/vertx/core/json/JsonArray;
            invokedynamic accept()Ljava/util/function/BiConsumer;
              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;)V
                  io/vertx/core/json/JsonArray.add(Ljava/lang/Object;)Lio/vertx/core/json/JsonArray; (5)
                  (Lio/vertx/core/json/JsonArray;Lio/vertx/core/json/JsonObject;)V
            invokedynamic accept()Ljava/util/function/BiConsumer;
              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;)V
                  io/vertx/core/json/JsonArray.addAll(Lio/vertx/core/json/JsonArray;)Lio/vertx/core/json/JsonArray; (5)
                  (Lio/vertx/core/json/JsonArray;Lio/vertx/core/json/JsonArray;)V
            invokeinterface java.util.stream.Stream.collect:(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BiConsumer;)Ljava/lang/Object;
            checkcast io.vertx.core.json.JsonArray
         6: .line 186
            astore 2 /* jsonArray */
        start local 2 // io.vertx.core.json.JsonArray jsonArray
         7: .line 189
            aload 0
            aload 2 /* jsonArray */
            invokeinterface io.vertx.ext.web.RoutingContext.json:(Ljava/lang/Object;)Lio/vertx/core/Future;
            pop
        end local 2 // io.vertx.core.json.JsonArray jsonArray
         8: .line 191
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     1         ar  Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/servicediscovery/Record;>;>;
            7    8     2  jsonArray  Lio/vertx/core/json/JsonArray;
}
SourceFile: "ServiceDiscoveryRestEndpoint.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles