public class io.micronaut.http.client.DefaultLoadBalancerResolver implements io.micronaut.http.client.LoadBalancerResolver
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.micronaut.http.client.DefaultLoadBalancerResolver
super_class: java.lang.Object
{
private final java.util.Map<java.lang.String, io.micronaut.discovery.ServiceInstanceList> serviceInstanceLists;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Lio/micronaut/discovery/ServiceInstanceList;>;
private final io.micronaut.context.BeanContext beanContext;
descriptor: Lio/micronaut/context/BeanContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(io.micronaut.context.BeanContext, io.micronaut.discovery.ServiceInstanceList[]);
descriptor: (Lio/micronaut/context/BeanContext;[Lio/micronaut/discovery/ServiceInstanceList;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial io.micronaut.http.client.DefaultLoadBalancerResolver.<init>:(Lio/micronaut/context/BeanContext;Ljava/util/List;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/micronaut/http/client/DefaultLoadBalancerResolver;
0 2 1 beanContext Lio/micronaut/context/BeanContext;
0 2 2 serviceInstanceLists [Lio/micronaut/discovery/ServiceInstanceList;
MethodParameters:
Name Flags
beanContext
serviceInstanceLists
public void <init>(io.micronaut.context.BeanContext, java.util.List<io.micronaut.discovery.ServiceInstanceList>);
descriptor: (Lio/micronaut/context/BeanContext;Ljava/util/List;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.micronaut.http.client.DefaultLoadBalancerResolver.beanContext:Lio/micronaut/context/BeanContext;
2: aload 2
invokestatic io.micronaut.core.util.CollectionUtils.isNotEmpty:(Ljava/util/Collection;)Z
ifeq 9
3: aload 0
new java.util.HashMap
dup
aload 2
invokeinterface java.util.List.size:()I
invokespecial java.util.HashMap.<init>:(I)V
putfield io.micronaut.http.client.DefaultLoadBalancerResolver.serviceInstanceLists:Ljava/util/Map;
4: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: io.micronaut.http.client.DefaultLoadBalancerResolver io.micronaut.context.BeanContext java.util.List top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast io.micronaut.discovery.ServiceInstanceList
astore 3
start local 3 6: aload 0
getfield io.micronaut.http.client.DefaultLoadBalancerResolver.serviceInstanceLists:Ljava/util/Map;
aload 3
invokeinterface io.micronaut.discovery.ServiceInstanceList.getID:()Ljava/lang/String;
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: goto 10
9: StackMap locals: io.micronaut.http.client.DefaultLoadBalancerResolver io.micronaut.context.BeanContext java.util.List
StackMap stack:
aload 0
invokestatic java.util.Collections.emptyMap:()Ljava/util/Map;
putfield io.micronaut.http.client.DefaultLoadBalancerResolver.serviceInstanceLists:Ljava/util/Map;
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/micronaut/http/client/DefaultLoadBalancerResolver;
0 11 1 beanContext Lio/micronaut/context/BeanContext;
0 11 2 serviceInstanceLists Ljava/util/List<Lio/micronaut/discovery/ServiceInstanceList;>;
6 7 3 provider Lio/micronaut/discovery/ServiceInstanceList;
Signature: (Lio/micronaut/context/BeanContext;Ljava/util/List<Lio/micronaut/discovery/ServiceInstanceList;>;)V
RuntimeVisibleAnnotations:
javax.inject.Inject()
MethodParameters:
Name Flags
beanContext
serviceInstanceLists
public java.util.Optional<? extends io.micronaut.http.client.LoadBalancer> resolve(java.lang.String[]);
descriptor: ([Ljava/lang/String;)Ljava/util/Optional;
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokestatic io.micronaut.core.util.ArrayUtils.isEmpty:([Ljava/lang/Object;)Z
ifne 1
aload 1
iconst_0
aaload
invokestatic io.micronaut.core.util.StringUtils.isEmpty:(Ljava/lang/CharSequence;)Z
ifeq 2
1: StackMap locals:
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
2: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
astore 2
start local 2 3: aload 2
ldc "/"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 9
4: aload 0
getfield io.micronaut.http.client.DefaultLoadBalancerResolver.beanContext:Lio/micronaut/context/BeanContext;
ldc Lio/micronaut/runtime/server/EmbeddedServer;
invokeinterface io.micronaut.context.BeanContext.containsBean:(Ljava/lang/Class;)Z
ifeq 8
5: aload 0
getfield io.micronaut.http.client.DefaultLoadBalancerResolver.beanContext:Lio/micronaut/context/BeanContext;
ldc Lio/micronaut/runtime/server/EmbeddedServer;
invokeinterface io.micronaut.context.BeanContext.getBean:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast io.micronaut.runtime.server.EmbeddedServer
astore 3
start local 3 6: aload 3
invokeinterface io.micronaut.runtime.server.EmbeddedServer.getURL:()Ljava/net/URL;
astore 4
start local 4 7: aload 4
invokestatic io.micronaut.http.client.LoadBalancer.fixed:(Ljava/net/URL;)Lio/micronaut/http/client/LoadBalancer;
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
end local 4 end local 3 8: StackMap locals: java.lang.String
StackMap stack:
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
9: StackMap locals:
StackMap stack:
aload 2
bipush 47
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmple 15
10: new java.net.URL
dup
aload 2
invokespecial java.net.URL.<init>:(Ljava/lang/String;)V
astore 3
start local 3 11: aload 3
invokestatic io.micronaut.http.client.LoadBalancer.fixed:(Ljava/net/URL;)Lio/micronaut/http/client/LoadBalancer;
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
12: areturn
end local 3 13: StackMap locals:
StackMap stack: java.net.MalformedURLException
pop
14: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
15: StackMap locals:
StackMap stack:
aload 2
invokestatic io.micronaut.core.naming.NameUtils.hyphenate:(Ljava/lang/String;)Ljava/lang/String;
astore 2
16: aload 0
aload 2
invokevirtual io.micronaut.http.client.DefaultLoadBalancerResolver.resolveLoadBalancerForServiceID:(Ljava/lang/String;)Ljava/util/Optional;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/micronaut/http/client/DefaultLoadBalancerResolver;
0 17 1 serviceReferences [Ljava/lang/String;
3 17 2 reference Ljava/lang/String;
6 8 3 embeddedServer Lio/micronaut/runtime/server/EmbeddedServer;
7 8 4 url Ljava/net/URL;
11 13 3 url Ljava/net/URL;
Exception table:
from to target type
10 12 13 Class java.net.MalformedURLException
Signature: ([Ljava/lang/String;)Ljava/util/Optional<+Lio/micronaut/http/client/LoadBalancer;>;
MethodParameters:
Name Flags
serviceReferences
protected java.util.Optional<? extends io.micronaut.http.client.LoadBalancer> resolveLoadBalancerForServiceID(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/util/Optional;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.micronaut.http.client.DefaultLoadBalancerResolver.serviceInstanceLists:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 4
1: aload 0
getfield io.micronaut.http.client.DefaultLoadBalancerResolver.serviceInstanceLists:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast io.micronaut.discovery.ServiceInstanceList
astore 2
start local 2 2: aload 0
getfield io.micronaut.http.client.DefaultLoadBalancerResolver.beanContext:Lio/micronaut/context/BeanContext;
ldc Lio/micronaut/http/client/loadbalance/ServiceInstanceListLoadBalancerFactory;
invokeinterface io.micronaut.context.BeanContext.getBean:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast io.micronaut.http.client.loadbalance.ServiceInstanceListLoadBalancerFactory
aload 2
invokevirtual io.micronaut.http.client.loadbalance.ServiceInstanceListLoadBalancerFactory.create:(Lio/micronaut/discovery/ServiceInstanceList;)Lio/micronaut/http/client/LoadBalancer;
astore 3
start local 3 3: aload 3
invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
end local 3 end local 2 4: StackMap locals:
StackMap stack:
aload 0
getfield io.micronaut.http.client.DefaultLoadBalancerResolver.beanContext:Lio/micronaut/context/BeanContext;
ldc Lio/micronaut/http/client/loadbalance/DiscoveryClientLoadBalancerFactory;
invokeinterface io.micronaut.context.BeanContext.getBean:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast io.micronaut.http.client.loadbalance.DiscoveryClientLoadBalancerFactory
aload 1
invokevirtual io.micronaut.http.client.loadbalance.DiscoveryClientLoadBalancerFactory.create:(Ljava/lang/String;)Lio/micronaut/http/client/LoadBalancer;
astore 2
start local 2 5: aload 2
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/micronaut/http/client/DefaultLoadBalancerResolver;
0 6 1 serviceID Ljava/lang/String;
2 4 2 serviceInstanceList Lio/micronaut/discovery/ServiceInstanceList;
3 4 3 loadBalancer Lio/micronaut/http/client/LoadBalancer;
5 6 2 loadBalancer Lio/micronaut/http/client/LoadBalancer;
Signature: (Ljava/lang/String;)Ljava/util/Optional<+Lio/micronaut/http/client/LoadBalancer;>;
MethodParameters:
Name Flags
serviceID
}
SourceFile: "DefaultLoadBalancerResolver.java"
RuntimeVisibleAnnotations:
javax.inject.Singleton()
io.micronaut.context.annotation.BootstrapContextCompatible()