public class org.apache.dubbo.registry.dubbo.DubboRegistryFactory extends org.apache.dubbo.registry.support.AbstractRegistryFactory
{
private org.apache.dubbo.rpc.Protocol protocol;
private org.apache.dubbo.rpc.ProxyFactory proxyFactory;
private org.apache.dubbo.rpc.cluster.Cluster cluster;
public void <init>()
{
org.apache.dubbo.registry.dubbo.DubboRegistryFactory v;
v := @this: org.apache.dubbo.registry.dubbo.DubboRegistryFactory;
specialinvoke v.<org.apache.dubbo.registry.support.AbstractRegistryFactory: void <init>()>();
return;
}
private static org.apache.dubbo.common.URL getRegistryURL(org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.bytecode.Wrapper v;
java.lang.String[] v;
org.apache.dubbo.common.URLBuilder v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.HashSet v;
org.apache.dubbo.common.URL v, v;
java.lang.String v, v, v;
java.util.List v;
java.lang.Class v, v;
v := @parameter: org.apache.dubbo.common.URL;
v = staticinvoke <org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder 'from'(org.apache.dubbo.common.URL)>(v);
v = class "Lorg/apache/dubbo/registry/RegistryService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder setPath(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder removeParameter(java.lang.String)>("export");
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder removeParameter(java.lang.String)>("refer");
v = class "Lorg/apache/dubbo/registry/RegistryService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameter(java.lang.String,java.lang.String)>("interface", v);
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameter(java.lang.String,java.lang.String)>("sticky", "true");
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameter(java.lang.String,java.lang.String)>("lazy", "true");
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameter(java.lang.String,java.lang.String)>("reconnect", "false");
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameterIfAbsent(java.lang.String,java.lang.String)>("timeout", "10000");
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameterIfAbsent(java.lang.String,java.lang.String)>("callbacks", "10000");
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameterIfAbsent(java.lang.String,java.lang.String)>("connect.timeout", "10000");
v = new java.util.HashSet;
v = staticinvoke <org.apache.dubbo.common.bytecode.Wrapper: org.apache.dubbo.common.bytecode.Wrapper getWrapper(java.lang.Class)>(class "Lorg/apache/dubbo/registry/RegistryService;");
v = virtualinvoke v.<org.apache.dubbo.common.bytecode.Wrapper: java.lang.String[] getDeclaredMethodNames()>();
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: java.lang.String join(java.util.Collection,java.lang.String)>(v, ",");
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameter(java.lang.String,java.lang.String)>("methods", v);
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameter(java.lang.String,java.lang.String)>("subscribe.1.callback", "true");
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URLBuilder addParameter(java.lang.String,java.lang.String)>("unsubscribe.1.callback", "false");
v = virtualinvoke v.<org.apache.dubbo.common.URLBuilder: org.apache.dubbo.common.URL build()>();
return v;
}
public void setProtocol(org.apache.dubbo.rpc.Protocol)
{
org.apache.dubbo.registry.dubbo.DubboRegistryFactory v;
org.apache.dubbo.rpc.Protocol v;
v := @this: org.apache.dubbo.registry.dubbo.DubboRegistryFactory;
v := @parameter: org.apache.dubbo.rpc.Protocol;
v.<org.apache.dubbo.registry.dubbo.DubboRegistryFactory: org.apache.dubbo.rpc.Protocol protocol> = v;
return;
}
public void setProxyFactory(org.apache.dubbo.rpc.ProxyFactory)
{
org.apache.dubbo.rpc.ProxyFactory v;
org.apache.dubbo.registry.dubbo.DubboRegistryFactory v;
v := @this: org.apache.dubbo.registry.dubbo.DubboRegistryFactory;
v := @parameter: org.apache.dubbo.rpc.ProxyFactory;
v.<org.apache.dubbo.registry.dubbo.DubboRegistryFactory: org.apache.dubbo.rpc.ProxyFactory proxyFactory> = v;
return;
}
public void setCluster(org.apache.dubbo.rpc.cluster.Cluster)
{
org.apache.dubbo.rpc.cluster.Cluster v;
org.apache.dubbo.registry.dubbo.DubboRegistryFactory v;
v := @this: org.apache.dubbo.registry.dubbo.DubboRegistryFactory;
v := @parameter: org.apache.dubbo.rpc.cluster.Cluster;
v.<org.apache.dubbo.registry.dubbo.DubboRegistryFactory: org.apache.dubbo.rpc.cluster.Cluster cluster> = v;
return;
}
public org.apache.dubbo.registry.Registry createRegistry(org.apache.dubbo.common.URL)
{
org.apache.dubbo.rpc.ProxyFactory v;
java.lang.String[] v;
org.apache.dubbo.rpc.Invoker v;
java.util.ArrayList v;
org.apache.dubbo.registry.dubbo.DubboRegistryFactory v;
org.apache.dubbo.rpc.Protocol v;
org.apache.dubbo.common.URL v, v, v, v, v, v, v;
java.util.Map v;
int v, v, v;
java.lang.String v, v, v, v, v, v;
org.apache.dubbo.registry.dubbo.DubboRegistry v;
org.apache.dubbo.registry.integration.RegistryDirectory v;
org.apache.dubbo.rpc.cluster.Cluster v;
org.apache.dubbo.rpc.cluster.RouterChain v;
java.lang.Class v, v;
java.lang.Object v;
java.util.regex.Pattern v;
v := @this: org.apache.dubbo.registry.dubbo.DubboRegistryFactory;
v := @parameter: org.apache.dubbo.common.URL;
v = staticinvoke <org.apache.dubbo.registry.dubbo.DubboRegistryFactory: org.apache.dubbo.common.URL getRegistryURL(org.apache.dubbo.common.URL)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL removeParameter(java.lang.String)>("backup");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getParameter(java.lang.String)>("backup");
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 0 goto label;
v = <org.apache.dubbo.common.constants.CommonConstants: java.util.regex.Pattern COMMA_SPLIT_PATTERN>;
v = virtualinvoke v.<java.util.regex.Pattern: java.lang.String[] split(java.lang.CharSequence)>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL setAddress(java.lang.String)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = new org.apache.dubbo.registry.integration.RegistryDirectory;
v = class "Lorg/apache/dubbo/registry/RegistryService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL addParameter(java.lang.String,java.lang.String)>("interface", v);
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String toParameterString()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: org.apache.dubbo.common.URL addParameterAndEncoded(java.lang.String,java.lang.String)>("refer", v);
specialinvoke v.<org.apache.dubbo.registry.integration.RegistryDirectory: void <init>(java.lang.Class,org.apache.dubbo.common.URL)>(class "Lorg/apache/dubbo/registry/RegistryService;", v);
v = v.<org.apache.dubbo.registry.dubbo.DubboRegistryFactory: org.apache.dubbo.rpc.cluster.Cluster cluster>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.cluster.Cluster: org.apache.dubbo.rpc.Invoker join(org.apache.dubbo.rpc.cluster.Directory)>(v);
v = v.<org.apache.dubbo.registry.dubbo.DubboRegistryFactory: org.apache.dubbo.rpc.ProxyFactory proxyFactory>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.ProxyFactory: java.lang.Object getProxy(org.apache.dubbo.rpc.Invoker)>(v);
v = new org.apache.dubbo.registry.dubbo.DubboRegistry;
specialinvoke v.<org.apache.dubbo.registry.dubbo.DubboRegistry: void <init>(org.apache.dubbo.rpc.Invoker,org.apache.dubbo.registry.RegistryService)>(v, v);
virtualinvoke v.<org.apache.dubbo.registry.integration.RegistryDirectory: void setRegistry(org.apache.dubbo.registry.Registry)>(v);
v = v.<org.apache.dubbo.registry.dubbo.DubboRegistryFactory: org.apache.dubbo.rpc.Protocol protocol>;
virtualinvoke v.<org.apache.dubbo.registry.integration.RegistryDirectory: void setProtocol(org.apache.dubbo.rpc.Protocol)>(v);
v = staticinvoke <org.apache.dubbo.rpc.cluster.RouterChain: org.apache.dubbo.rpc.cluster.RouterChain buildChain(org.apache.dubbo.common.URL)>(v);
virtualinvoke v.<org.apache.dubbo.registry.integration.RegistryDirectory: void setRouterChain(org.apache.dubbo.rpc.cluster.RouterChain)>(v);
virtualinvoke v.<org.apache.dubbo.registry.integration.RegistryDirectory: void notify(java.util.List)>(v);
v = new org.apache.dubbo.common.URL;
v = staticinvoke <org.apache.dubbo.common.utils.NetUtils: java.lang.String getLocalHost()>();
v = class "Lorg/apache/dubbo/registry/RegistryService;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.util.Map getParameters()>();
specialinvoke v.<org.apache.dubbo.common.URL: void <init>(java.lang.String,java.lang.String,int,java.lang.String,java.util.Map)>("consumer", v, 0, v, v);
virtualinvoke v.<org.apache.dubbo.registry.integration.RegistryDirectory: void subscribe(org.apache.dubbo.common.URL)>(v);
return v;
}
}