class org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper extends java.lang.Object implements org.apache.dubbo.rpc.Exporter
{
private final java.util.concurrent.ExecutorService executor;
private final org.apache.dubbo.rpc.Invoker originInvoker;
private org.apache.dubbo.rpc.Exporter exporter;
private org.apache.dubbo.common.URL subscribeUrl;
private org.apache.dubbo.common.URL registerUrl;
final org.apache.dubbo.registry.integration.RegistryProtocol this$0;
public void <init>(org.apache.dubbo.registry.integration.RegistryProtocol, org.apache.dubbo.rpc.Exporter, org.apache.dubbo.rpc.Invoker)
{
org.apache.dubbo.rpc.Exporter v;
org.apache.dubbo.registry.integration.RegistryProtocol v;
org.apache.dubbo.rpc.Invoker v;
org.apache.dubbo.common.utils.NamedThreadFactory v;
java.util.concurrent.ExecutorService v;
org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper v;
v := @this: org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper;
v := @parameter: org.apache.dubbo.registry.integration.RegistryProtocol;
v := @parameter: org.apache.dubbo.rpc.Exporter;
v := @parameter: org.apache.dubbo.rpc.Invoker;
v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.registry.integration.RegistryProtocol this$0> = v;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new org.apache.dubbo.common.utils.NamedThreadFactory;
specialinvoke v.<org.apache.dubbo.common.utils.NamedThreadFactory: void <init>(java.lang.String,boolean)>("Exporter-Unexport", 1);
v = staticinvoke <java.util.concurrent.Executors: java.util.concurrent.ExecutorService newSingleThreadExecutor(java.util.concurrent.ThreadFactory)>(v);
v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: java.util.concurrent.ExecutorService executor> = v;
v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.rpc.Exporter exporter> = v;
v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.rpc.Invoker originInvoker> = v;
return;
}
public org.apache.dubbo.rpc.Invoker getOriginInvoker()
{
org.apache.dubbo.rpc.Invoker v;
org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper v;
v := @this: org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.rpc.Invoker originInvoker>;
return v;
}
public org.apache.dubbo.rpc.Invoker getInvoker()
{
org.apache.dubbo.rpc.Exporter v;
org.apache.dubbo.rpc.Invoker v;
org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper v;
v := @this: org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.rpc.Exporter exporter>;
v = interfaceinvoke v.<org.apache.dubbo.rpc.Exporter: org.apache.dubbo.rpc.Invoker getInvoker()>();
return v;
}
public void setExporter(org.apache.dubbo.rpc.Exporter)
{
org.apache.dubbo.rpc.Exporter v;
org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper v;
v := @this: org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper;
v := @parameter: org.apache.dubbo.rpc.Exporter;
v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.rpc.Exporter exporter> = v;
return;
}
public void unexport()
{
org.apache.dubbo.registry.integration.RegistryProtocol v, v, v, v, v;
java.lang.Runnable v;
org.apache.dubbo.common.URL v, v, v, v, v;
java.util.Map v, v;
org.apache.dubbo.registry.Registry v;
java.lang.Throwable v, v;
org.apache.dubbo.common.extension.ExtensionLoader v;
org.apache.dubbo.rpc.Invoker v, v;
java.util.concurrent.ConcurrentMap v;
java.lang.String v, v, v, v, v, v;
java.util.concurrent.ExecutorService v;
org.apache.dubbo.common.logger.Logger v, v;
java.lang.Object v, v, v;
org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper v;
v := @this: org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.registry.integration.RegistryProtocol this$0>;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.rpc.Invoker originInvoker>;
v = specialinvoke v.<org.apache.dubbo.registry.integration.RegistryProtocol: java.lang.String getCacheKey(org.apache.dubbo.rpc.Invoker)>(v);
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.registry.integration.RegistryProtocol this$0>;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol: java.util.concurrent.ConcurrentMap bounds>;
interfaceinvoke v.<java.util.concurrent.ConcurrentMap: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.registry.integration.RegistryProtocol this$0>;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.rpc.Invoker originInvoker>;
v = virtualinvoke v.<org.apache.dubbo.registry.integration.RegistryProtocol: org.apache.dubbo.registry.Registry getRegistry(org.apache.dubbo.rpc.Invoker)>(v);
label:
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.common.URL registerUrl>;
interfaceinvoke v.<org.apache.dubbo.registry.Registry: void unregister(org.apache.dubbo.common.URL)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.dubbo.registry.integration.RegistryProtocol: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.registry.integration.RegistryProtocol this$0>;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol: java.util.Map overrideListeners>;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.common.URL subscribeUrl>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.common.URL subscribeUrl>;
interfaceinvoke v.<org.apache.dubbo.registry.Registry: void unsubscribe(org.apache.dubbo.common.URL,org.apache.dubbo.registry.NotifyListener)>(v, v);
v = staticinvoke <org.apache.dubbo.common.extension.ExtensionLoader: org.apache.dubbo.common.extension.ExtensionLoader getExtensionLoader(java.lang.Class)>(class "Lorg/apache/dubbo/rpc/cluster/governance/GovernanceRuleRepository;");
v = virtualinvoke v.<org.apache.dubbo.common.extension.ExtensionLoader: java.lang.Object getDefaultExtension()>();
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.common.URL subscribeUrl>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getServiceKey()>();
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[])>("\u.configurators");
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.registry.integration.RegistryProtocol this$0>;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol: java.util.Map serviceConfigurationListeners>;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.common.URL subscribeUrl>;
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getServiceKey()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
interfaceinvoke v.<org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository: void removeListener(java.lang.String,org.apache.dubbo.common.config.configcenter.ConfigurationListener)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.dubbo.registry.integration.RegistryProtocol: org.apache.dubbo.common.logger.Logger logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.dubbo.common.logger.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: java.util.concurrent.ExecutorService executor>;
v = staticinvoke <org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper$lambda_unexport_0__74: java.lang.Runnable bootstrap$(org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper)>(v);
interfaceinvoke v.<java.util.concurrent.ExecutorService: java.util.concurrent.Future submit(java.lang.Runnable)>(v);
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
public void setSubscribeUrl(org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper v;
v := @this: org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper;
v := @parameter: org.apache.dubbo.common.URL;
v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.common.URL subscribeUrl> = v;
return;
}
public void setRegisterUrl(org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper v;
v := @this: org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper;
v := @parameter: org.apache.dubbo.common.URL;
v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.common.URL registerUrl> = v;
return;
}
public org.apache.dubbo.common.URL getRegisterUrl()
{
org.apache.dubbo.common.URL v;
org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper v;
v := @this: org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper;
v = v.<org.apache.dubbo.registry.integration.RegistryProtocol$ExporterChangeableWrapper: org.apache.dubbo.common.URL registerUrl>;
return v;
}
}