public class org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter extends java.lang.Object implements org.apache.dubbo.metadata.MetadataServiceExporter
{
private final org.apache.dubbo.common.logger.Logger logger;
private final org.apache.dubbo.metadata.MetadataService metadataService;
private volatile org.apache.dubbo.config.ServiceConfig serviceConfig;
public void <init>(org.apache.dubbo.metadata.MetadataService)
{
org.apache.dubbo.common.logger.Logger v;
java.lang.Class v;
org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter v;
org.apache.dubbo.metadata.MetadataService v;
v := @this: org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
v := @parameter: org.apache.dubbo.metadata.MetadataService;
specialinvoke v.<java.lang.Object: 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.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.common.logger.Logger logger> = v;
v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.metadata.MetadataService metadataService> = v;
return;
}
public org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter export()
{
org.apache.dubbo.config.ApplicationConfig v, v;
org.apache.dubbo.config.ServiceConfig v, v;
java.lang.String v, v, v, v;
boolean v, v, v;
org.apache.dubbo.common.logger.Logger v, v, v, v;
org.apache.dubbo.metadata.MetadataService v, v;
java.util.List v, v, v;
org.apache.dubbo.config.ProtocolConfig v;
org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter v;
v := @this: org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
v = virtualinvoke v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: boolean isExported()>();
if v != 0 goto label;
v = new org.apache.dubbo.config.ServiceConfig;
specialinvoke v.<org.apache.dubbo.config.ServiceConfig: void <init>()>();
v = specialinvoke v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ApplicationConfig getApplicationConfig()>();
virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: void setApplication(org.apache.dubbo.config.ApplicationConfig)>(v);
v = specialinvoke v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: java.util.List getRegistries()>();
virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: void setRegistries(java.util.List)>(v);
v = specialinvoke v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ProtocolConfig generateMetadataProtocol()>();
virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: void setProtocol(org.apache.dubbo.config.ProtocolConfig)>(v);
virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: void setInterface(java.lang.Class)>(class "Lorg/apache/dubbo/metadata/MetadataService;");
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.metadata.MetadataService metadataService>;
virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: void setRef(java.lang.Object)>(v);
v = specialinvoke v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ApplicationConfig getApplicationConfig()>();
v = virtualinvoke v.<org.apache.dubbo.config.ApplicationConfig: java.lang.String getName()>();
virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: void setGroup(java.lang.String)>(v);
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.metadata.MetadataService metadataService>;
v = interfaceinvoke v.<org.apache.dubbo.metadata.MetadataService: java.lang.String version()>();
virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: void setVersion(java.lang.String)>(v);
virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: void export()>();
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isInfoEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: java.util.List getExportedUrls()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List)>(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[])>("The MetadataService exports urls : \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void info(java.lang.String)>(v);
label:
v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ServiceConfig serviceConfig> = v;
goto label;
label:
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.common.logger.Logger logger>;
v = interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: boolean isWarnEnabled()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.common.logger.Logger logger>;
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ServiceConfig serviceConfig>;
v = virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: java.util.List getExportedUrls()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List)>(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[])>("The MetadataService has been exported : \u0001");
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String)>(v);
label:
return v;
}
public org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter unexport()
{
org.apache.dubbo.config.ServiceConfig v;
org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter v;
boolean v;
v := @this: org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
v = virtualinvoke v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: boolean isExported()>();
if v == 0 goto label;
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ServiceConfig serviceConfig>;
virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: void unexport()>();
label:
return v;
}
public java.util.List getExportedURLs()
{
java.util.List v;
org.apache.dubbo.config.ServiceConfig v, v;
org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter v;
v := @this: org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ServiceConfig serviceConfig>;
if v == null goto label;
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ServiceConfig serviceConfig>;
v = virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: java.util.List getExportedUrls()>();
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
label:
return v;
}
public boolean isExported()
{
org.apache.dubbo.config.ServiceConfig v, v;
org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter v;
boolean v, v;
v := @this: org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ServiceConfig serviceConfig>;
if v == null goto label;
v = v.<org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter: org.apache.dubbo.config.ServiceConfig serviceConfig>;
v = virtualinvoke v.<org.apache.dubbo.config.ServiceConfig: boolean isExported()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private org.apache.dubbo.config.ApplicationConfig getApplicationConfig()
{
java.util.Optional v;
java.lang.Object v;
org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter v;
org.apache.dubbo.config.context.ConfigManager v;
v := @this: org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
v = staticinvoke <org.apache.dubbo.rpc.model.ApplicationModel: org.apache.dubbo.config.context.ConfigManager getConfigManager()>();
v = virtualinvoke v.<org.apache.dubbo.config.context.ConfigManager: java.util.Optional getApplication()>();
v = virtualinvoke v.<java.util.Optional: java.lang.Object get()>();
return v;
}
private java.util.List getRegistries()
{
java.util.Collection v;
org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter v;
org.apache.dubbo.config.context.ConfigManager v;
java.util.ArrayList v;
v := @this: org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
v = new java.util.ArrayList;
v = staticinvoke <org.apache.dubbo.rpc.model.ApplicationModel: org.apache.dubbo.config.context.ConfigManager getConfigManager()>();
v = virtualinvoke v.<org.apache.dubbo.config.context.ConfigManager: java.util.Collection getRegistries()>();
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
return v;
}
private org.apache.dubbo.config.ProtocolConfig generateMetadataProtocol()
{
int v;
org.apache.dubbo.config.ProtocolConfig v;
org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter v;
java.lang.Integer v;
v := @this: org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
v = new org.apache.dubbo.config.ProtocolConfig;
specialinvoke v.<org.apache.dubbo.config.ProtocolConfig: void <init>()>();
virtualinvoke v.<org.apache.dubbo.config.ProtocolConfig: void setName(java.lang.String)>("dubbo");
v = (int) -1;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
virtualinvoke v.<org.apache.dubbo.config.ProtocolConfig: void setPort(java.lang.Integer)>(v);
return v;
}
}