public class org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery extends org.apache.dubbo.registry.client.AbstractServiceDiscovery
{
private final org.apache.dubbo.common.logger.Logger logger;
private org.apache.dubbo.common.URL registryURL;
private org.apache.curator.framework.CuratorFramework curatorFramework;
private java.lang.String rootPath;
private org.apache.curator.x.discovery.ServiceDiscovery serviceDiscovery;
private final java.util.Map watcherCaches;
public void <init>()
{
org.apache.dubbo.common.logger.Logger v;
java.util.concurrent.ConcurrentHashMap v;
java.lang.Class v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
specialinvoke v.<org.apache.dubbo.registry.client.AbstractServiceDiscovery: void <init>()>();
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = staticinvoke <org.apache.dubbo.common.logger.LoggerFactory: org.apache.dubbo.common.logger.Logger getLogger(java.lang.Class)>(v);
v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.dubbo.common.logger.Logger logger> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: java.util.Map watcherCaches> = v;
return;
}
public void initialize(org.apache.dubbo.common.URL) throws java.lang.Exception
{
org.apache.curator.x.discovery.ServiceDiscovery v, v;
org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
org.apache.dubbo.common.URL v;
org.apache.curator.framework.CuratorFramework v, v;
java.lang.Object v;
java.lang.String v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: org.apache.dubbo.common.URL;
v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.dubbo.common.URL registryURL> = v;
v = staticinvoke <org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils: org.apache.curator.framework.CuratorFramework buildCuratorFramework(org.apache.dubbo.common.URL)>(v);
v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.curator.framework.CuratorFramework curatorFramework> = v;
v = <org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams: org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams ROOT_PATH>;
v = virtualinvoke v.<org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams: java.lang.Object getParameterValue(org.apache.dubbo.common.URL)>(v);
v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: java.lang.String rootPath> = v;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.curator.framework.CuratorFramework curatorFramework>;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: java.lang.String rootPath>;
v = staticinvoke <org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils: org.apache.curator.x.discovery.ServiceDiscovery buildServiceDiscovery(org.apache.curator.framework.CuratorFramework,java.lang.String)>(v, v);
v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.curator.x.discovery.ServiceDiscovery serviceDiscovery> = v;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.curator.x.discovery.ServiceDiscovery serviceDiscovery>;
interfaceinvoke v.<org.apache.curator.x.discovery.ServiceDiscovery: void start()>();
return;
}
public org.apache.dubbo.common.URL getUrl()
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.dubbo.common.URL registryURL>;
return v;
}
public void destroy() throws java.lang.Exception
{
org.apache.curator.x.discovery.ServiceDiscovery v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.curator.x.discovery.ServiceDiscovery serviceDiscovery>;
interfaceinvoke v.<org.apache.curator.x.discovery.ServiceDiscovery: void close()>();
return;
}
public void doRegister(org.apache.dubbo.registry.client.ServiceInstance)
{
org.apache.dubbo.common.function.ThrowableConsumer v;
org.apache.dubbo.registry.client.ServiceInstance v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_doRegister_0__7: org.apache.dubbo.common.function.ThrowableConsumer bootstrap$(org.apache.dubbo.registry.client.ServiceInstance)>(v);
specialinvoke v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: void doInServiceRegistry(org.apache.dubbo.common.function.ThrowableConsumer)>(v);
return;
}
public void doUpdate(org.apache.dubbo.registry.client.ServiceInstance)
{
org.apache.dubbo.common.function.ThrowableConsumer v;
org.apache.dubbo.registry.client.ServiceInstance v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_doUpdate_1__8: org.apache.dubbo.common.function.ThrowableConsumer bootstrap$(org.apache.dubbo.registry.client.ServiceInstance)>(v);
specialinvoke v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: void doInServiceRegistry(org.apache.dubbo.common.function.ThrowableConsumer)>(v);
return;
}
public void unregister(org.apache.dubbo.registry.client.ServiceInstance) throws java.lang.RuntimeException
{
org.apache.dubbo.common.function.ThrowableConsumer v;
org.apache.dubbo.registry.client.ServiceInstance v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: org.apache.dubbo.registry.client.ServiceInstance;
v = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_unregister_2__9: org.apache.dubbo.common.function.ThrowableConsumer bootstrap$(org.apache.dubbo.registry.client.ServiceInstance)>(v);
specialinvoke v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: void doInServiceRegistry(org.apache.dubbo.common.function.ThrowableConsumer)>(v);
return;
}
public java.util.Set getServices()
{
java.lang.Object v;
org.apache.dubbo.common.function.ThrowableFunction v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_getServices_3__10: org.apache.dubbo.common.function.ThrowableFunction bootstrap$()>();
v = specialinvoke v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: java.lang.Object doInServiceDiscovery(org.apache.dubbo.common.function.ThrowableFunction)>(v);
return v;
}
public java.util.List getInstances(java.lang.String) throws java.lang.NullPointerException
{
java.lang.Object v;
java.lang.String v;
org.apache.dubbo.common.function.ThrowableFunction v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_getInstances_4__11: org.apache.dubbo.common.function.ThrowableFunction bootstrap$(java.lang.String)>(v);
v = specialinvoke v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: java.lang.Object doInServiceDiscovery(org.apache.dubbo.common.function.ThrowableFunction)>(v);
return v;
}
public org.apache.dubbo.common.utils.Page getInstances(java.lang.String, int, int, boolean)
{
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
int v, v;
java.lang.Object v;
java.lang.String v, v;
org.apache.dubbo.common.function.ThrowableFunction v;
boolean v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: int;
v := @parameter: boolean;
v = specialinvoke v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: java.lang.String buildServicePath(java.lang.String)>(v);
v = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_getInstances_5__12: org.apache.dubbo.common.function.ThrowableFunction bootstrap$(org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery,int,int,java.lang.String)>(v, v, v, v);
v = staticinvoke <org.apache.dubbo.common.function.ThrowableFunction: java.lang.Object execute(java.lang.Object,org.apache.dubbo.common.function.ThrowableFunction)>(v, v);
return v;
}
public void addServiceInstancesChangedListener(org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
{
java.util.function.Consumer v;
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener v;
java.util.Set v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
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 = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_addServiceInstancesChangedListener_6__13: java.util.function.Consumer bootstrap$(org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery,org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener)>(v, v);
interfaceinvoke v.<java.util.Set: void forEach(java.util.function.Consumer)>(v);
return;
}
public void removeServiceInstancesChangedListener(org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener) throws java.lang.IllegalArgumentException
{
java.util.function.Consumer v;
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener v;
java.util.Set v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
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 = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_removeServiceInstancesChangedListener_7__14: java.util.function.Consumer bootstrap$(org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery)>(v);
interfaceinvoke v.<java.util.Set: void forEach(java.util.function.Consumer)>(v);
return;
}
private void doInServiceRegistry(org.apache.dubbo.common.function.ThrowableConsumer)
{
org.apache.dubbo.common.function.ThrowableConsumer v, v;
org.apache.curator.x.discovery.ServiceDiscovery v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: org.apache.dubbo.common.function.ThrowableConsumer;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.curator.x.discovery.ServiceDiscovery serviceDiscovery>;
v = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_doInServiceRegistry_8__15: org.apache.dubbo.common.function.ThrowableConsumer bootstrap$(org.apache.dubbo.common.function.ThrowableConsumer)>(v);
staticinvoke <org.apache.dubbo.common.function.ThrowableConsumer: void execute(java.lang.Object,org.apache.dubbo.common.function.ThrowableConsumer)>(v, v);
return;
}
private java.lang.Object doInServiceDiscovery(org.apache.dubbo.common.function.ThrowableFunction)
{
org.apache.curator.x.discovery.ServiceDiscovery v;
java.lang.Object v;
org.apache.dubbo.common.function.ThrowableFunction v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: org.apache.dubbo.common.function.ThrowableFunction;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.curator.x.discovery.ServiceDiscovery serviceDiscovery>;
v = staticinvoke <org.apache.dubbo.common.function.ThrowableFunction: java.lang.Object execute(java.lang.Object,org.apache.dubbo.common.function.ThrowableFunction)>(v, v);
return v;
}
protected void registerServiceWatcher(java.lang.String, org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener)
{
java.lang.Throwable v, v;
java.lang.IllegalStateException v, v;
org.apache.curator.framework.api.GetChildrenBuilder v;
org.apache.curator.framework.api.CreateBuilder v;
java.util.function.Function v;
java.util.Map v;
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener v;
java.lang.String v, v, v, v, v;
boolean v, v;
org.apache.dubbo.common.logger.Logger v, v, v, v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
java.lang.Exception v, v;
org.apache.curator.framework.CuratorFramework v, v;
java.lang.Object v, v;
org.apache.curator.framework.api.ProtectACLCreateModeStatPathAndBytesable v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: java.lang.String;
v := @parameter: org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
v = specialinvoke v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: java.lang.String buildServicePath(java.lang.String)>(v);
label:
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.curator.framework.CuratorFramework curatorFramework>;
v = interfaceinvoke v.<org.apache.curator.framework.CuratorFramework: org.apache.curator.framework.api.CreateBuilder create()>();
v = interfaceinvoke v.<org.apache.curator.framework.api.CreateBuilder: org.apache.curator.framework.api.ProtectACLCreateModeStatPathAndBytesable creatingParentsIfNeeded()>();
interfaceinvoke v.<org.apache.curator.framework.api.ProtectACLCreateModeStatPathAndBytesable: java.lang.Object forPath(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.dubbo.common.logger.Logger logger>;
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void debug(java.lang.Throwable)>(v);
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
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[])>("registerServiceWatcher create path=\u fail.");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: java.util.Map watcherCaches>;
v = staticinvoke <org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery$lambda_registerServiceWatcher_9__16: java.util.function.Function bootstrap$(org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery,java.lang.String,org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener)>(v, v, v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
label:
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.curator.framework.CuratorFramework curatorFramework>;
v = interfaceinvoke v.<org.apache.curator.framework.CuratorFramework: org.apache.curator.framework.api.GetChildrenBuilder getChildren()>();
v = interfaceinvoke v.<org.apache.curator.framework.api.GetChildrenBuilder: java.lang.Object usingWatcher(org.apache.curator.framework.api.CuratorWatcher)>(v);
interfaceinvoke v.<org.apache.curator.framework.api.BackgroundPathable: java.lang.Object forPath(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isErrorEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<org.apache.zookeeper.KeeperException$NoNodeException: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void error(java.lang.String)>(v);
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch org.apache.zookeeper.KeeperException$NodeExistsException from label to label with label;
catch java.lang.Exception from label to label with label;
catch org.apache.zookeeper.KeeperException$NoNodeException from label to label with label;
catch java.lang.Exception from label to label with label;
}
private java.lang.String buildServicePath(java.lang.String)
{
java.lang.String v, v, v;
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery v;
v := @this: org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery;
v := @parameter: java.lang.String;
v = v.<org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery: java.lang.String rootPath>;
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");
return v;
}
}