public class org.apache.dubbo.registry.consul.ConsulServiceDiscovery extends org.apache.dubbo.registry.client.AbstractServiceDiscovery implements org.apache.dubbo.event.EventListener
{
private static final org.apache.dubbo.common.logger.Logger logger;
private static final java.lang.String QUERY_TAG;
private static final java.lang.String REGISTER_TAG;
private java.util.List registeringTags;
private java.lang.String tag;
private com.ecwid.consul.v.ConsulClient client;
private java.util.concurrent.ExecutorService notifierExecutor;
private java.util.Map notifiers;
private org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler ttlScheduler;
private long checkPassInterval;
private org.apache.dubbo.common.URL url;
private java.lang.String aclToken;
private java.util.List tags;
private com.ecwid.consul.v.ConsistencyMode consistencyMode;
private java.lang.String defaultZoneMetadataName;
private java.lang.String instanceZone;
private java.lang.String instanceGroup;
public void <init>()
{
java.util.concurrent.ConcurrentHashMap v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.common.utils.NamedThreadFactory v;
java.util.concurrent.ExecutorService v;
java.util.ArrayList v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
specialinvoke v.<org.apache.dubbo.registry.client.AbstractServiceDiscovery: void <init>()>();
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List registeringTags> = v;
v = new org.apache.dubbo.common.utils.NamedThreadFactory;
specialinvoke v.<org.apache.dubbo.common.utils.NamedThreadFactory: void <init>(java.lang.String,boolean)>("dubbo-service-discovery-consul-notifier", 1);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newCachedThreadPool(java.util.concurrent.ThreadFactory)>(v);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.concurrent.ExecutorService notifierExecutor> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map notifiers> = v;
return;
}
public void onEvent(org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent)
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;
return;
}
public void initialize(org.apache.dubbo.common.URL) throws java.lang.Exception
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
long v, v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler v;
org.apache.dubbo.common.URL v, v, v, v, v, v;
com.ecwid.consul.v.ConsistencyMode v;
int v, v;
java.lang.String v, v, v, v, v, v;
com.ecwid.consul.v.ConsulClient v, v;
org.apache.dubbo.registry.consul.ConsulParameter v, v, v, v;
java.util.List v, v, v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.common.URL;
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.common.URL url> = v;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.common.URL url>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getHost()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.common.URL url>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: int getPort()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.common.URL url>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: int getPort()>();
goto label;
label:
v = 8500;
label:
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.common.URL url>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: long getParameter(java.lang.String,long)>("consul-check-pass-interval", 16000L);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: long checkPassInterval> = v;
v = new com.ecwid.consul.v.ConsulClient;
specialinvoke v.<com.ecwid.consul.v.ConsulClient: void <init>(java.lang.String,int)>(v, v);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.ConsulClient client> = v;
v = new org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: long checkPassInterval>;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.ConsulClient client>;
specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler: void <init>(long,com.ecwid.consul.v.ConsulClient)>(v, v);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler ttlScheduler> = v;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String)>("consul_query_tag");
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String tag> = v;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List registeringTags>;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.common.URL url>;
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List getRegisteringTags(org.apache.dubbo.common.URL)>(v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
v = <org.apache.dubbo.registry.consul.ConsulParameter: org.apache.dubbo.registry.consul.ConsulParameter ACL_TOKEN>;
v = virtualinvoke v.<org.apache.dubbo.registry.consul.ConsulParameter: java.lang.String getValue(org.apache.dubbo.common.URL)>(v);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String aclToken> = v;
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List getTags(org.apache.dubbo.common.URL)>(v);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List tags> = v;
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.ConsistencyMode getConsistencyMode(org.apache.dubbo.common.URL)>(v);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.ConsistencyMode consistencyMode> = v;
v = <org.apache.dubbo.registry.consul.ConsulParameter: org.apache.dubbo.registry.consul.ConsulParameter DEFAULT_ZONE_METADATA_NAME>;
v = virtualinvoke v.<org.apache.dubbo.registry.consul.ConsulParameter: java.lang.String getValue(org.apache.dubbo.common.URL)>(v);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String defaultZoneMetadataName> = v;
v = <org.apache.dubbo.registry.consul.ConsulParameter: org.apache.dubbo.registry.consul.ConsulParameter INSTANCE_ZONE>;
v = virtualinvoke v.<org.apache.dubbo.registry.consul.ConsulParameter: java.lang.String getValue(org.apache.dubbo.common.URL)>(v);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String instanceZone> = v;
v = <org.apache.dubbo.registry.consul.ConsulParameter: org.apache.dubbo.registry.consul.ConsulParameter INSTANCE_GROUP>;
v = virtualinvoke v.<org.apache.dubbo.registry.consul.ConsulParameter: java.lang.String getValue(org.apache.dubbo.common.URL)>(v);
v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String instanceGroup> = v;
return;
}
private com.ecwid.consul.v.ConsistencyMode getConsistencyMode(org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.URL v;
com.ecwid.consul.v.ConsistencyMode v, v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.consul.ConsulParameter v;
java.lang.String v;
boolean v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.common.URL;
v = <org.apache.dubbo.registry.consul.ConsulParameter: org.apache.dubbo.registry.consul.ConsulParameter CONSISTENCY_MODE>;
v = virtualinvoke v.<org.apache.dubbo.registry.consul.ConsulParameter: java.lang.String getValue(org.apache.dubbo.common.URL)>(v);
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isNotEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = staticinvoke <com.ecwid.consul.v.ConsistencyMode: com.ecwid.consul.v.ConsistencyMode valueOf(java.lang.String)>(v);
return v;
label:
v = <com.ecwid.consul.v.ConsistencyMode: com.ecwid.consul.v.ConsistencyMode DEFAULT>;
return v;
}
private java.util.List getTags(org.apache.dubbo.common.URL)
{
java.util.List v;
org.apache.dubbo.common.URL v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.consul.ConsulParameter v;
java.lang.String v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.common.URL;
v = <org.apache.dubbo.registry.consul.ConsulParameter: org.apache.dubbo.registry.consul.ConsulParameter TAGS>;
v = virtualinvoke v.<org.apache.dubbo.registry.consul.ConsulParameter: java.lang.String getValue(org.apache.dubbo.common.URL)>(v);
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: java.util.List splitToList(java.lang.String,char)>(v, 44);
return v;
}
public org.apache.dubbo.common.URL getUrl()
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.common.URL v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.common.URL url>;
return v;
}
private java.util.List getRegisteringTags(org.apache.dubbo.common.URL)
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
java.lang.String[] v;
java.util.ArrayList v;
java.util.List v;
org.apache.dubbo.common.URL v;
java.lang.String v;
java.util.regex.Pattern v;
boolean v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.common.URL;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String)>("consul_register_tag");
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isNotEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = <org.apache.dubbo.common.constants.CommonConstants: java.util.regex.Pattern SEMICOLON_SPLIT_PATTERN>;
v = virtualinvoke v.<java.util.regex.Pattern: java.lang.String[] split(java.lang.CharSequence)>(v);
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
label:
return v;
}
public void destroy()
{
java.util.Map v, v;
java.util.function.BiConsumer v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
java.util.concurrent.ExecutorService v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map notifiers>;
v = staticinvoke <org.apache.dubbo.registry.consul.ConsulServiceDiscovery$lambda_destroy_0__14: java.util.function.BiConsumer bootstrap$()>();
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map notifiers>;
interfaceinvoke v.<java.util.Map: void clear()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.concurrent.ExecutorService notifierExecutor>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.List shutdownNow()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler ttlScheduler>;
virtualinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler: void stop()>();
return;
}
public void doRegister(org.apache.dubbo.registry.client.ServiceInstance)
{
com.ecwid.consul.v.ConsulClient v;
com.ecwid.consul.v.agent.model.NewService v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.client.ServiceInstance v;
java.lang.String v, v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.agent.model.NewService buildService(org.apache.dubbo.registry.client.ServiceInstance)>(v);
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler ttlScheduler>;
v = virtualinvoke v.<com.ecwid.consul.v.agent.model.NewService: java.lang.String getId()>();
virtualinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler: void add(java.lang.String)>(v);
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.ConsulClient client>;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String aclToken>;
virtualinvoke v.<com.ecwid.consul.v.ConsulClient: com.ecwid.consul.v.Response agentServiceRegister(com.ecwid.consul.v.agent.model.NewService,java.lang.String)>(v, v);
return;
}
public void addServiceInstancesChangedListener(org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
{
java.util.Iterator v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
java.util.Set v;
long v;
java.lang.Long v;
java.util.Map v;
int v;
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener v;
com.ecwid.consul.v.Response v;
java.lang.Object v, v;
java.util.concurrent.ExecutorService v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery$ConsulNotifier v;
boolean v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
v = virtualinvoke v.<org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener: java.util.Set getServiceNames()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map notifiers>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: int buildWatchTimeout()>();
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.Response getHealthServices(java.lang.String,long,int)>(v, -1L, v);
v = virtualinvoke v.<com.ecwid.consul.v.Response: java.lang.Long getConsulIndex()>();
v = new org.apache.dubbo.registry.consul.ConsulServiceDiscovery$ConsulNotifier;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery$ConsulNotifier: void <init>(org.apache.dubbo.registry.consul.ConsulServiceDiscovery,java.lang.String,long)>(v, v, v);
v = v;
label:
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.concurrent.ExecutorService notifierExecutor>;
interfaceinvoke v.<java.util.concurrent.ExecutorService: void execute(java.lang.Runnable)>(v);
goto label;
label:
return;
}
public void doUpdate(org.apache.dubbo.registry.client.ServiceInstance)
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.client.ServiceInstance v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
return;
}
public void unregister(org.apache.dubbo.registry.client.ServiceInstance) throws java.lang.RuntimeException
{
com.ecwid.consul.v.ConsulClient v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.client.ServiceInstance v;
java.lang.String v, v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String buildId(org.apache.dubbo.registry.client.ServiceInstance)>(v);
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler ttlScheduler>;
virtualinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery$TtlScheduler: void remove(java.lang.String)>(v);
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.ConsulClient client>;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String aclToken>;
virtualinvoke v.<com.ecwid.consul.v.ConsulClient: com.ecwid.consul.v.Response agentServiceDeregister(java.lang.String,java.lang.String)>(v, v);
return;
}
public java.util.Set getServices()
{
com.ecwid.consul.v.ConsulClient v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
java.util.Set v;
com.ecwid.consul.v.QueryParams v;
com.ecwid.consul.v.catalog.CatalogServicesRequest v;
com.ecwid.consul.v.Response v;
java.lang.Object v;
java.lang.String v;
com.ecwid.consul.v.catalog.CatalogServicesRequest$Builder v, v, v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v = staticinvoke <com.ecwid.consul.v.catalog.CatalogServicesRequest: com.ecwid.consul.v.catalog.CatalogServicesRequest$Builder newBuilder()>();
v = <com.ecwid.consul.v.QueryParams: com.ecwid.consul.v.QueryParams DEFAULT>;
v = virtualinvoke v.<com.ecwid.consul.v.catalog.CatalogServicesRequest$Builder: com.ecwid.consul.v.catalog.CatalogServicesRequest$Builder setQueryParams(com.ecwid.consul.v.QueryParams)>(v);
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String aclToken>;
v = virtualinvoke v.<com.ecwid.consul.v.catalog.CatalogServicesRequest$Builder: com.ecwid.consul.v.catalog.CatalogServicesRequest$Builder setToken(java.lang.String)>(v);
v = virtualinvoke v.<com.ecwid.consul.v.catalog.CatalogServicesRequest$Builder: com.ecwid.consul.v.catalog.CatalogServicesRequest build()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.ConsulClient client>;
v = virtualinvoke v.<com.ecwid.consul.v.ConsulClient: com.ecwid.consul.v.Response getCatalogServices(com.ecwid.consul.v.catalog.CatalogServicesRequest)>(v);
v = virtualinvoke v.<com.ecwid.consul.v.Response: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
return v;
}
public java.util.List getInstances(java.lang.String) throws java.lang.NullPointerException
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
long v;
java.util.List v;
java.lang.Long v;
java.util.Map v, v;
int v;
com.ecwid.consul.v.Response v;
java.lang.Object v, v;
java.lang.String v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery$ConsulNotifier v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: java.lang.String;
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: int buildWatchTimeout()>();
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.Response getHealthServices(java.lang.String,long,int)>(v, -1L, v);
v = virtualinvoke v.<com.ecwid.consul.v.Response: java.lang.Long getConsulIndex()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map notifiers>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.apache.dubbo.registry.consul.ConsulServiceDiscovery$ConsulNotifier;
v = virtualinvoke v.<java.lang.Long: long longValue()>();
specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery$ConsulNotifier: void <init>(org.apache.dubbo.registry.consul.ConsulServiceDiscovery,java.lang.String,long)>(v, v, v);
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map notifiers>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
label:
v = virtualinvoke v.<com.ecwid.consul.v.Response: java.lang.Object getValue()>();
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List convert(java.util.List)>(v);
return v;
}
private java.util.List convert(java.util.List)
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
java.util.function.Function v, v;
java.util.List v;
java.util.stream.Stream v, v, v;
java.lang.Object v;
java.util.stream.Collector v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.dubbo.registry.consul.ConsulServiceDiscovery$getService__15: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <org.apache.dubbo.registry.consul.ConsulServiceDiscovery$lambda_convert_1__16: java.util.function.Function bootstrap$(org.apache.dubbo.registry.consul.ConsulServiceDiscovery)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toList()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
return v;
}
private com.ecwid.consul.v.Response getHealthServices(java.lang.String, long, int)
{
com.ecwid.consul.v.ConsulClient v;
com.ecwid.consul.v.health.HealthServicesRequest$Builder v, v, v, v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
long v;
com.ecwid.consul.v.QueryParams v;
int v;
com.ecwid.consul.v.Response v;
java.lang.String v, v;
com.ecwid.consul.v.health.HealthServicesRequest v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: java.lang.String;
v := @parameter: long;
v := @parameter: int;
v = staticinvoke <com.ecwid.consul.v.health.HealthServicesRequest: com.ecwid.consul.v.health.HealthServicesRequest$Builder newBuilder()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String tag>;
v = virtualinvoke v.<com.ecwid.consul.v.health.HealthServicesRequest$Builder: com.ecwid.consul.v.health.HealthServicesRequest$Builder setTag(java.lang.String)>(v);
v = new com.ecwid.consul.v.QueryParams;
specialinvoke v.<com.ecwid.consul.v.QueryParams: void <init>(long,long)>(v, v);
v = virtualinvoke v.<com.ecwid.consul.v.health.HealthServicesRequest$Builder: com.ecwid.consul.v.health.HealthServicesRequest$Builder setQueryParams(com.ecwid.consul.v.QueryParams)>(v);
v = virtualinvoke v.<com.ecwid.consul.v.health.HealthServicesRequest$Builder: com.ecwid.consul.v.health.HealthServicesRequest$Builder setPassing(boolean)>(1);
v = virtualinvoke v.<com.ecwid.consul.v.health.HealthServicesRequest$Builder: com.ecwid.consul.v.health.HealthServicesRequest build()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.ConsulClient client>;
v = virtualinvoke v.<com.ecwid.consul.v.ConsulClient: com.ecwid.consul.v.Response getHealthServices(java.lang.String,com.ecwid.consul.v.health.HealthServicesRequest)>(v, v);
return v;
}
private java.util.Map getMetadata(com.ecwid.consul.v.health.model.HealthService$Service)
{
com.ecwid.consul.v.health.model.HealthService$Service v;
java.util.List v;
java.util.Map v, v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
boolean v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: com.ecwid.consul.v.health.model.HealthService$Service;
v = virtualinvoke v.<com.ecwid.consul.v.health.model.HealthService$Service: java.util.Map getMeta()>();
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map decodeMetadata(java.util.Map)>(v);
v = staticinvoke <org.apache.dubbo.common.utils.CollectionUtils: boolean isEmptyMap(java.util.Map)>(v);
if v == 0 goto label;
v = virtualinvoke v.<com.ecwid.consul.v.health.model.HealthService$Service: java.util.List getTags()>();
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map getScCompatibleMetadata(java.util.List)>(v);
label:
return v;
}
private java.util.Map getScCompatibleMetadata(java.util.List)
{
java.lang.Object[] v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
java.lang.String[] v;
java.util.LinkedHashMap v;
int v, v;
java.lang.String v, v, v, v, v, v;
boolean v;
java.util.Iterator v;
java.util.List v;
java.lang.Object v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: java.util.List;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
if v == null goto label;
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: java.lang.String[] delimitedListToStringArray(java.lang.String,java.lang.String)>(v, "=");
v = lengthof v;
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
default: goto label;
};
label:
v = v[0];
v = v[0];
virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = v[0];
v = v[1];
virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
v = lengthof v;
v = staticinvoke <java.util.Arrays: java.lang.Object[] copyOfRange(java.lang.Object[],int,int)>(v, 1, v);
v = v[0];
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: java.lang.String arrayToDelimitedString(java.lang.Object[],java.lang.String)>(v, "=");
virtualinvoke v.<java.util.LinkedHashMap: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
return v;
}
private com.ecwid.consul.v.agent.model.NewService buildService(org.apache.dubbo.registry.client.ServiceInstance)
{
com.ecwid.consul.v.agent.model.NewService v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.client.ServiceInstance v;
com.ecwid.consul.v.agent.model.NewService$Check v;
java.lang.Integer v;
java.util.List v;
java.lang.String v, v, v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = new com.ecwid.consul.v.agent.model.NewService;
specialinvoke v.<com.ecwid.consul.v.agent.model.NewService: void <init>()>();
v = interfaceinvoke v.<org.apache.dubbo.registry.client.ServiceInstance: java.lang.String getHost()>();
virtualinvoke v.<com.ecwid.consul.v.agent.model.NewService: void setAddress(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.dubbo.registry.client.ServiceInstance: java.lang.Integer getPort()>();
virtualinvoke v.<com.ecwid.consul.v.agent.model.NewService: void setPort(java.lang.Integer)>(v);
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String buildId(org.apache.dubbo.registry.client.ServiceInstance)>(v);
virtualinvoke v.<com.ecwid.consul.v.agent.model.NewService: void setId(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.dubbo.registry.client.ServiceInstance: java.lang.String getServiceName()>();
virtualinvoke v.<com.ecwid.consul.v.agent.model.NewService: void setName(java.lang.String)>(v);
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: com.ecwid.consul.v.agent.model.NewService$Check buildCheck(org.apache.dubbo.registry.client.ServiceInstance)>(v);
virtualinvoke v.<com.ecwid.consul.v.agent.model.NewService: void setCheck(com.ecwid.consul.v.agent.model.NewService$Check)>(v);
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List buildTags(org.apache.dubbo.registry.client.ServiceInstance)>(v);
virtualinvoke v.<com.ecwid.consul.v.agent.model.NewService: void setTags(java.util.List)>(v);
return v;
}
private java.lang.String buildId(org.apache.dubbo.registry.client.ServiceInstance)
{
int v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.client.ServiceInstance v;
java.lang.String v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = interfaceinvoke v.<org.apache.dubbo.registry.client.ServiceInstance: int hashCode()>();
v = staticinvoke <java.lang.Integer: java.lang.String toHexString(int)>(v);
return v;
}
private java.util.List buildTags(org.apache.dubbo.registry.client.ServiceInstance)
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
java.util.function.Function v;
java.util.Map v;
java.lang.String v, v, v, v, v, v, v;
java.util.LinkedList v;
boolean v, v;
java.util.Set v;
org.apache.dubbo.registry.client.ServiceInstance v;
java.util.function.Consumer v;
java.util.List v, v;
java.util.stream.Stream v, v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = new java.util.LinkedList;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List tags>;
specialinvoke v.<java.util.LinkedList: void <init>(java.util.Collection)>(v);
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String instanceZone>;
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isNotEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String defaultZoneMetadataName>;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String instanceZone>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001=\u0001");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String instanceGroup>;
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isNotEmpty(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.lang.String instanceGroup>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("group=\u0001");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<org.apache.dubbo.registry.client.ServiceInstance: java.util.Map getMetadata()>();
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.stream.Stream stream()>();
v = staticinvoke <org.apache.dubbo.registry.consul.ConsulServiceDiscovery$lambda_buildTags_2__17: java.util.function.Function bootstrap$(java.util.Map)>(v);
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.registry.consul.ConsulServiceDiscovery$add__18: java.util.function.Consumer bootstrap$(java.util.List)>(v);
interfaceinvoke v.<java.util.stream.Stream: void forEach(java.util.function.Consumer)>(v);
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List registeringTags>;
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
return v;
}
private java.util.Map buildMetadata(org.apache.dubbo.registry.client.ServiceInstance)
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.client.ServiceInstance v;
java.util.LinkedHashMap v;
java.util.List v;
java.util.Map v, v, v, v;
boolean v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.List registeringTags>;
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map getScCompatibleMetadata(java.util.List)>(v);
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
v = interfaceinvoke v.<org.apache.dubbo.registry.client.ServiceInstance: java.util.Map getMetadata()>();
v = staticinvoke <org.apache.dubbo.common.utils.CollectionUtils: boolean isNotEmptyMap(java.util.Map)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<org.apache.dubbo.registry.client.ServiceInstance: java.util.Map getMetadata()>();
interfaceinvoke v.<java.util.Map: void putAll(java.util.Map)>(v);
label:
v = specialinvoke v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: java.util.Map encodeMetadata(java.util.Map)>(v);
return v;
}
private java.util.Map encodeMetadata(java.util.Map)
{
java.util.Map v;
int v;
java.util.function.BiConsumer v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
java.util.HashMap v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: java.util.Map;
if v != null goto label;
return v;
label:
v = new java.util.HashMap;
v = interfaceinvoke v.<java.util.Map: int size()>();
specialinvoke v.<java.util.HashMap: void <init>(int)>(v);
v = staticinvoke <org.apache.dubbo.registry.consul.ConsulServiceDiscovery$lambda_encodeMetadata_3__19: java.util.function.BiConsumer bootstrap$(java.util.Map)>(v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
return v;
}
private java.util.Map decodeMetadata(java.util.Map)
{
java.util.Map v;
int v;
java.util.function.BiConsumer v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
java.util.HashMap v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: java.util.Map;
if v != null goto label;
return v;
label:
v = new java.util.HashMap;
v = interfaceinvoke v.<java.util.Map: int size()>();
specialinvoke v.<java.util.HashMap: void <init>(int)>(v);
v = staticinvoke <org.apache.dubbo.registry.consul.ConsulServiceDiscovery$lambda_decodeMetadata_4__20: java.util.function.BiConsumer bootstrap$(java.util.Map)>(v);
interfaceinvoke v.<java.util.Map: void forEach(java.util.function.BiConsumer)>(v);
return v;
}
private com.ecwid.consul.v.agent.model.NewService$Check buildCheck(org.apache.dubbo.registry.client.ServiceInstance)
{
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
org.apache.dubbo.registry.client.ServiceInstance v;
long v, v;
com.ecwid.consul.v.agent.model.NewService$Check v;
java.util.Map v;
java.lang.Object v;
java.lang.String v, v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = new com.ecwid.consul.v.agent.model.NewService$Check;
specialinvoke v.<com.ecwid.consul.v.agent.model.NewService$Check: void <init>()>();
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: long checkPassInterval>;
v = v / 1000L;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001s");
virtualinvoke v.<com.ecwid.consul.v.agent.model.NewService$Check: void setTtl(java.lang.String)>(v);
v = interfaceinvoke v.<org.apache.dubbo.registry.client.ServiceInstance: java.util.Map getMetadata()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>("consul-deregister-critical-service-after");
if v != null goto label;
v = "20s";
goto label;
label:
v = v;
label:
virtualinvoke v.<com.ecwid.consul.v.agent.model.NewService$Check: void setDeregisterCriticalServiceAfter(java.lang.String)>(v);
return v;
}
private int buildWatchTimeout()
{
org.apache.dubbo.common.URL v;
int v, v, v;
org.apache.dubbo.registry.consul.ConsulServiceDiscovery v;
v := @this: org.apache.dubbo.registry.consul.ConsulServiceDiscovery;
v = v.<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.common.URL url>;
v = (int) 60000;
v = virtualinvoke v.<org.apache.dubbo.common.URL: int getParameter(java.lang.String,int)>("consul-watch-timeout", v);
v = v / 1000;
return v;
}
static void <clinit>()
{
org.apache.dubbo.common.logger.Logger v;
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(class "Lorg/apache/dubbo/registry/consul/ConsulServiceDiscovery;");
<org.apache.dubbo.registry.consul.ConsulServiceDiscovery: org.apache.dubbo.common.logger.Logger logger> = v;
return;
}
}