public class org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration extends org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration
{
public static final java.lang.String CONFIG_CENTER_DIR_PARAM_NAME;
public static final java.lang.String CONFIG_CENTER_ENCODING_PARAM_NAME;
public static final java.lang.String DEFAULT_CONFIG_CENTER_DIR_PATH;
public static final int DEFAULT_THREAD_POOL_SIZE;
public static final java.lang.String DEFAULT_CONFIG_CENTER_ENCODING;
private static final java.nio.file.WatchEvent$Kind[] INTEREST_PATH_KINDS;
private static final java.lang.String POLLING_WATCH_SERVICE_CLASS_NAME;
private static final int THREAD_POOL_SIZE;
private static final org.apache.commons.logging.Log logger;
private static final java.util.Map CONFIG_CHANGE_TYPES_MAP;
private static final java.util.Optional watchService;
private static final boolean BASED_POOLING_WATCH_SERVICE;
private static final java.nio.file.WatchEvent$Modifier[] MODIFIERS;
private static final java.lang.Integer DELAY;
private static final java.util.concurrent.ThreadPoolExecutor WATCH_EVENTS_LOOP_THREAD_POOL;
private final java.io.File rootDirectory;
private final java.lang.String encoding;
private final java.util.Set processingDirectories;
private final java.util.Map listenersRepository;
public void <init>()
{
java.lang.String v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v = new java.io.File;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String DEFAULT_CONFIG_CENTER_DIR_PATH>;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void <init>(java.io.File)>(v);
return;
}
public void <init>(java.io.File)
{
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void <init>(java.io.File,java.lang.String)>(v, "UTF-8");
return;
}
public void <init>(java.io.File, java.lang.String)
{
java.lang.String v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v := @parameter: java.lang.String;
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void <init>(java.io.File,java.lang.String,java.lang.String)>(v, v, "dubbo.config-center.workers");
return;
}
public void <init>(java.io.File, java.lang.String, java.lang.String)
{
java.lang.String v, v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void <init>(java.io.File,java.lang.String,java.lang.String,int)>(v, v, v, 1);
return;
}
public void <init>(java.io.File, java.lang.String, java.lang.String, int)
{
int v;
long v;
java.lang.String v, v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: int;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: long DEFAULT_THREAD_POOL_KEEP_ALIVE_TIME>;
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void <init>(java.io.File,java.lang.String,java.lang.String,int,long)>(v, v, v, v, v);
return;
}
public void <init>(java.io.File, java.lang.String, java.lang.String, int, long)
{
java.util.Set v;
long v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
java.util.LinkedHashMap v;
int v;
java.lang.String v, v, v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: int;
v := @parameter: long;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
specialinvoke v.<org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration: void <init>(java.lang.String,java.lang.String,int,long,java.lang.String,long)>(v, v, v, v, "dubbo", -1L);
v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.io.File rootDirectory> = v;
v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String encoding> = v;
v = specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Set initProcessingDirectories()>();
v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Set processingDirectories> = v;
v = new java.util.LinkedHashMap;
specialinvoke v.<java.util.LinkedHashMap: void <init>()>();
v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Map listenersRepository> = v;
return;
}
public void <init>(org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.URL v;
int v;
long v;
java.lang.String v, v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: org.apache.dubbo.common.URL;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.io.File initDirectory(org.apache.dubbo.common.URL)>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String getEncoding(org.apache.dubbo.common.URL)>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String getThreadPoolPrefixName(org.apache.dubbo.common.URL)>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: int getThreadPoolSize(org.apache.dubbo.common.URL)>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: long getThreadPoolKeepAliveTime(org.apache.dubbo.common.URL)>(v);
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void <init>(java.io.File,java.lang.String,java.lang.String,int,long)>(v, v, v, v, v);
return;
}
private java.util.Set initProcessingDirectories()
{
java.util.Set v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.util.LinkedHashSet v;
boolean v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: boolean isBasedPoolingWatchService()>();
if v == 0 goto label;
v = new java.util.LinkedHashSet;
v = v;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.Set emptySet()>();
label:
return v;
}
public java.io.File configFile(java.lang.String, java.lang.String)
{
java.lang.String v, v, v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = new java.io.File;
v = virtualinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String buildPathKey(java.lang.String,java.lang.String)>(v, v);
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
return v;
}
private void doInListener(java.lang.String, java.util.function.BiConsumer)
{
java.util.function.Consumer v;
java.util.function.BiConsumer v;
java.util.Optional v;
java.lang.String v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
v := @parameter: java.util.function.BiConsumer;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Optional watchService>;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_doInListener_1__157: java.util.function.Consumer bootstrap$(org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration,java.lang.String,java.util.function.BiConsumer)>(v, v, v);
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
return;
}
private static void registerDubboShutdownHook()
{
org.apache.dubbo.common.lang.ShutdownHookCallbacks v;
org.apache.dubbo.common.lang.ShutdownHookCallback v;
v = <org.apache.dubbo.common.lang.ShutdownHookCallbacks: org.apache.dubbo.common.lang.ShutdownHookCallbacks INSTANCE>;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_registerDubboShutdownHook_3__158: org.apache.dubbo.common.lang.ShutdownHookCallback bootstrap$()>();
virtualinvoke v.<org.apache.dubbo.common.lang.ShutdownHookCallbacks: org.apache.dubbo.common.lang.ShutdownHookCallbacks addCallback(org.apache.dubbo.common.lang.ShutdownHookCallback)>(v);
return;
}
private static boolean isProcessingWatchEvents()
{
int v;
java.util.concurrent.ThreadPoolExecutor v;
boolean v;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.concurrent.ThreadPoolExecutor getWatchEventsLoopThreadPool()>();
v = virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: int getActiveCount()>();
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void processWatchEvents(java.nio.file.WatchService)
{
java.nio.file.WatchService v;
java.util.concurrent.ThreadPoolExecutor v;
java.lang.Runnable v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.nio.file.WatchService;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.concurrent.ThreadPoolExecutor getWatchEventsLoopThreadPool()>();
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_processWatchEvents_5__159: java.lang.Runnable bootstrap$(org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration,java.nio.file.WatchService)>(v, v);
virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: void execute(java.lang.Runnable)>(v);
return;
}
private void signalConfigDirectory(java.io.File)
{
java.lang.Object[] v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
org.apache.commons.logging.Log v, v;
java.lang.String v, v;
boolean v, v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: boolean isBasedPoolingWatchService()>();
if v == 0 goto label;
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void removeProcessingDirectory(java.io.File)>(v);
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void notifyProcessingDirectory(java.io.File)>(v);
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: org.apache.commons.logging.Log logger>;
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("The config rootDirectory[%s] is signalled...", v);
interfaceinvoke v.<org.apache.commons.logging.Log: void debug(java.lang.Object)>(v);
label:
return;
}
private void removeProcessingDirectory(java.io.File)
{
java.util.Set v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v = v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Set processingDirectories>;
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
return;
}
private void notifyProcessingDirectory(java.io.File)
{
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
virtualinvoke v.<java.lang.Object: void notifyAll()>();
return;
}
private java.util.List getListeners(java.io.File)
{
java.util.Map v;
java.lang.Object v;
java.util.function.Function v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v = v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Map listenersRepository>;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_getListeners_6__160: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
return v;
}
private void fireConfigChangeEvent(java.io.File, java.io.File, org.apache.dubbo.common.config.configcenter.ConfigChangeType)
{
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v, v;
java.util.function.Consumer v;
java.util.List v;
org.apache.dubbo.common.config.configcenter.ConfigChangeType v;
java.lang.String v, v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v := @parameter: java.io.File;
v := @parameter: org.apache.dubbo.common.config.configcenter.ConfigChangeType;
v = virtualinvoke v.<java.io.File: java.lang.String getName()>();
v = virtualinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String getConfig(java.io.File)>(v);
v = specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.List getListeners(java.io.File)>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_fireConfigChangeEvent_7__161: java.util.function.Consumer bootstrap$(java.lang.String,java.io.File,java.lang.String,org.apache.dubbo.common.config.configcenter.ConfigChangeType)>(v, v, v, v);
interfaceinvoke v.<java.util.List: void forEach(java.util.function.Consumer)>(v);
return;
}
private boolean canRead(java.io.File)
{
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
boolean v, v, v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: boolean canRead()>();
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public java.lang.Object getInternalProperty(java.lang.String)
{
java.lang.String v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
return null;
}
protected boolean doPublishConfig(java.lang.String, java.lang.String) throws java.lang.Exception
{
java.lang.Object v;
java.lang.String v, v;
org.apache.dubbo.common.function.ThrowableFunction v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
boolean v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_doPublishConfig_8__162: org.apache.dubbo.common.function.ThrowableFunction bootstrap$(org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration,java.lang.String)>(v, v);
v = virtualinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.Object delay(java.lang.String,org.apache.dubbo.common.function.ThrowableFunction)>(v, v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
return v;
}
protected java.lang.String doGetConfig(java.lang.String) throws java.lang.Exception
{
java.lang.String v, v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String getConfig(java.io.File)>(v);
return v;
}
protected boolean doRemoveConfig(java.lang.String) throws java.lang.Exception
{
java.lang.String v;
org.apache.dubbo.common.function.ThrowableFunction v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_doRemoveConfig_9__163: org.apache.dubbo.common.function.ThrowableFunction bootstrap$(org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration)>(v);
virtualinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.Object delay(java.lang.String,org.apache.dubbo.common.function.ThrowableFunction)>(v, v);
return 1;
}
protected java.util.Collection doGetConfigKeys(java.lang.String)
{
java.util.function.Function v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
java.util.TreeSet v;
java.io.FileFilter v;
java.util.stream.Stream v, v;
java.lang.Object v;
java.lang.String v;
java.util.stream.Collector v;
java.io.File[] v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$isFile__164: java.io.FileFilter bootstrap$()>();
v = virtualinvoke v.<java.io.File: java.io.File[] listFiles(java.io.FileFilter)>(v);
if v != null goto label;
v = new java.util.TreeSet;
specialinvoke v.<java.util.TreeSet: void <init>()>();
return v;
label:
v = staticinvoke <java.util.stream.Stream: java.util.stream.Stream of(java.lang.Object[])>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$getName__165: java.util.function.Function bootstrap$()>();
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;
}
protected void doAddListener(java.lang.String, org.apache.dubbo.common.config.configcenter.ConfigurationListener)
{
org.apache.dubbo.common.config.configcenter.ConfigurationListener v;
java.util.function.BiConsumer v;
java.lang.String v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
v := @parameter: org.apache.dubbo.common.config.configcenter.ConfigurationListener;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_doAddListener_11__166: java.util.function.BiConsumer bootstrap$(org.apache.dubbo.common.config.configcenter.ConfigurationListener)>(v);
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void doInListener(java.lang.String,java.util.function.BiConsumer)>(v, v);
return;
}
protected void doRemoveListener(java.lang.String, org.apache.dubbo.common.config.configcenter.ConfigurationListener)
{
org.apache.dubbo.common.config.configcenter.ConfigurationListener v;
java.util.function.BiConsumer v;
java.lang.String v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
v := @parameter: org.apache.dubbo.common.config.configcenter.ConfigurationListener;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_doRemoveListener_12__167: java.util.function.BiConsumer bootstrap$(org.apache.dubbo.common.config.configcenter.ConfigurationListener)>(v);
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void doInListener(java.lang.String,java.util.function.BiConsumer)>(v, v);
return;
}
protected java.lang.Object delay(java.lang.String, org.apache.dubbo.common.function.ThrowableFunction)
{
java.lang.Throwable v;
java.util.concurrent.Callable v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v, v;
java.lang.Object v;
org.apache.commons.logging.Log v, v;
java.lang.String v, v;
org.apache.dubbo.common.function.ThrowableFunction v;
boolean v, v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.String;
v := @parameter: org.apache.dubbo.common.function.ThrowableFunction;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: boolean isBasedPoolingWatchService()>();
if v == 0 goto label;
v = virtualinvoke v.<java.io.File: java.io.File getParentFile()>();
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_delay_13__168: java.util.concurrent.Callable bootstrap$(org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration,java.io.File,java.io.File,java.lang.String)>(v, v, v, v);
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.Object executeMutually(java.lang.Object,java.util.concurrent.Callable)>(v, v);
label:
v = null;
label:
v = interfaceinvoke v.<org.apache.dubbo.common.function.ThrowableFunction: java.lang.Object apply(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isErrorEnabled()>();
if v == 0 goto label;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<java.lang.Throwable: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object,java.lang.Throwable)>(v, v);
label:
return v;
catch java.lang.Throwable from label to label with label;
}
private boolean hasListeners(java.io.File)
{
java.util.List v;
int v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
boolean v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v = specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.List getListeners(java.io.File)>(v);
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean isProcessing(java.io.File)
{
java.util.Set v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
boolean v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v = v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Set processingDirectories>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
return v;
}
private void addProcessing(java.io.File)
{
java.util.Set v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v = v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Set processingDirectories>;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
return;
}
public java.util.Set getConfigGroups()
{
java.util.function.Predicate v;
java.util.function.Function v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
java.util.stream.Stream v, v, v;
java.lang.Object v;
java.util.stream.Collector v;
java.io.File[] v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v = virtualinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.io.File getRootDirectory()>();
v = virtualinvoke v.<java.io.File: java.io.File[] listFiles()>();
v = staticinvoke <java.util.stream.Stream: java.util.stream.Stream of(java.lang.Object[])>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$isDirectory__169: java.util.function.Predicate bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream filter(java.util.function.Predicate)>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$getName__170: java.util.function.Function bootstrap$()>();
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 toSet()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
return v;
}
protected java.lang.String getConfig(java.io.File)
{
java.lang.Object v;
org.apache.dubbo.common.function.ThrowableFunction v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.io.File;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$lambda_getConfig_14__171: org.apache.dubbo.common.function.ThrowableFunction bootstrap$(org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration,java.io.File)>(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;
}
protected void doClose() throws java.lang.Exception
{
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
return;
}
public java.io.File getRootDirectory()
{
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.io.File v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v = v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.io.File rootDirectory>;
return v;
}
public java.lang.String getEncoding()
{
java.lang.String v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v = v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String encoding>;
return v;
}
protected java.lang.Integer getDelay()
{
java.lang.Integer v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.Integer DELAY>;
return v;
}
protected static boolean isBasedPoolingWatchService()
{
boolean v;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: boolean BASED_POOLING_WATCH_SERVICE>;
return v;
}
protected static java.util.concurrent.ThreadPoolExecutor getWatchEventsLoopThreadPool()
{
java.util.concurrent.ThreadPoolExecutor v;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.concurrent.ThreadPoolExecutor WATCH_EVENTS_LOOP_THREAD_POOL>;
return v;
}
protected java.util.concurrent.ThreadPoolExecutor getWorkersThreadPool()
{
java.util.concurrent.ThreadPoolExecutor v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v = specialinvoke v.<org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration: java.util.concurrent.ThreadPoolExecutor getWorkersThreadPool()>();
return v;
}
private java.lang.Object executeMutually(java.lang.Object, java.util.concurrent.Callable)
{
java.lang.Throwable v;
java.util.concurrent.Callable v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration v;
java.lang.Exception v;
java.lang.Object v, v;
org.apache.commons.logging.Log v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
v := @parameter: java.lang.Object;
v := @parameter: java.util.concurrent.Callable;
v = null;
entermonitor v;
label:
v = interfaceinvoke v.<java.util.concurrent.Callable: java.lang.Object call()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isErrorEnabled()>();
if v == 0 goto label;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object,java.lang.Throwable)>(v, v);
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return v;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static transient java.lang.Object[] of(java.lang.Object[])
{
java.lang.Object[] v;
v := @parameter: java.lang.Object[];
return v;
}
private static java.lang.Integer initDelay(java.nio.file.WatchEvent$Modifier[])
{
java.lang.Integer v;
boolean v;
java.nio.file.WatchEvent$Modifier[] v;
v := @parameter: java.nio.file.WatchEvent$Modifier[];
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: boolean isBasedPoolingWatchService()>();
if v == 0 goto label;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(2);
return v;
label:
return null;
}
private static java.nio.file.WatchEvent$Modifier[] initWatchEventModifiers()
{
java.lang.Object[] v;
java.nio.file.WatchEvent$Modifier[] v;
v = newarray (java.nio.file.WatchEvent$Modifier)[0];
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.Object[] of(java.lang.Object[])>(v);
return v;
}
private static boolean detectPoolingBasedWatchService(java.util.Optional)
{
java.util.function.Function v, v;
java.util.Optional v, v, v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @parameter: java.util.Optional;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$getClass__172: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$getName__173: java.util.function.Function bootstrap$()>();
v = virtualinvoke v.<java.util.Optional: java.util.Optional map(java.util.function.Function)>(v);
v = virtualinvoke v.<java.util.Optional: java.lang.Object orElse(java.lang.Object)>(null);
v = "sun.nio.fs.PollingWatchService";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
return v;
}
private static java.util.Optional newWatchService()
{
java.io.IOException v;
java.nio.file.FileSystem v;
java.nio.file.WatchService v;
java.util.Optional v;
org.apache.commons.logging.Log v, v;
java.lang.String v;
boolean v;
v = staticinvoke <java.nio.file.FileSystems: java.nio.file.FileSystem getDefault()>();
label:
v = virtualinvoke v.<java.nio.file.FileSystem: java.nio.file.WatchService newWatchService()>();
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: org.apache.commons.logging.Log logger>;
v = interfaceinvoke v.<org.apache.commons.logging.Log: boolean isErrorEnabled()>();
if v == 0 goto label;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: org.apache.commons.logging.Log logger>;
v = virtualinvoke v.<java.io.IOException: java.lang.String getMessage()>();
interfaceinvoke v.<org.apache.commons.logging.Log: void error(java.lang.Object,java.lang.Throwable)>(v, v);
label:
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
label:
return v;
catch java.io.IOException from label to label with label;
}
protected static java.io.File initDirectory(org.apache.dubbo.common.URL)
{
java.lang.IllegalStateException v;
java.lang.Object[] v;
org.apache.dubbo.common.URL v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v;
java.io.File v, v, v;
v := @parameter: org.apache.dubbo.common.URL;
if v != null goto label;
v = null;
goto label;
label:
v = virtualinvoke v.<org.apache.dubbo.common.URL: java.lang.String getPath()>();
label:
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String getParameter(org.apache.dubbo.common.URL,java.lang.String,java.lang.String)>(v, "dubbo.config-center.dir", v);
v = null;
v = staticinvoke <org.apache.dubbo.common.utils.StringUtils: boolean isBlank(java.lang.CharSequence)>(v);
if v != 0 goto label;
v = new java.io.File;
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[])>("/\u0001");
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = v;
label:
if v == null goto label;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
label:
v = new java.io.File;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String DEFAULT_CONFIG_CENTER_DIR_PATH>;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = v;
label:
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = virtualinvoke v.<java.io.File: boolean mkdirs()>();
if v != 0 goto label;
v = new java.lang.IllegalStateException;
v = newarray (java.lang.Object)[1];
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Dubbo config center rootDirectory[%s] can\'t be created!", v);
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
protected static java.lang.String getEncoding(org.apache.dubbo.common.URL)
{
org.apache.dubbo.common.URL v;
java.lang.String v;
v := @parameter: org.apache.dubbo.common.URL;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String getParameter(org.apache.dubbo.common.URL,java.lang.String,java.lang.String)>(v, "dubbo.config-center.encoding", "UTF-8");
return v;
}
private static java.util.concurrent.ThreadPoolExecutor newWatchEventsLoopThreadPool()
{
java.util.concurrent.TimeUnit v;
java.util.concurrent.SynchronousQueue v;
java.util.concurrent.ThreadPoolExecutor v;
org.apache.dubbo.common.utils.NamedThreadFactory v;
v = new java.util.concurrent.ThreadPoolExecutor;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = new java.util.concurrent.SynchronousQueue;
specialinvoke v.<java.util.concurrent.SynchronousQueue: void <init>()>();
v = new org.apache.dubbo.common.utils.NamedThreadFactory;
specialinvoke v.<org.apache.dubbo.common.utils.NamedThreadFactory: void <init>(java.lang.String,boolean)>("dubbo-config-center-watch-events-loop", 1);
specialinvoke v.<java.util.concurrent.ThreadPoolExecutor: void <init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.ThreadFactory)>(1, 1, 0L, v, v, v);
return v;
}
static void <clinit>()
{
java.lang.Object[] v;
java.util.concurrent.ThreadPoolExecutor v;
java.lang.Integer v;
java.nio.file.WatchEvent$Kind v, v, v;
java.util.Map v;
java.lang.String v, v, v, v;
boolean v;
java.nio.file.WatchEvent$Modifier[] v, v;
java.nio.file.WatchEvent$Kind[] v;
org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$1 v;
java.util.Optional v, v;
org.apache.commons.logging.Log v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("user.home");
v = <java.io.File: java.lang.String separator>;
v = <java.io.File: java.lang.String separator>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,java.lang.String)>(v, 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\u.dubbo\u0001config-center");
<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.String DEFAULT_CONFIG_CENTER_DIR_PATH> = v;
v = newarray (java.nio.file.WatchEvent$Kind)[3];
v = <java.nio.file.StandardWatchEventKinds: java.nio.file.WatchEvent$Kind ENTRY_CREATE>;
v[0] = v;
v = <java.nio.file.StandardWatchEventKinds: java.nio.file.WatchEvent$Kind ENTRY_DELETE>;
v[1] = v;
v = <java.nio.file.StandardWatchEventKinds: java.nio.file.WatchEvent$Kind ENTRY_MODIFY>;
v[2] = v;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.Object[] of(java.lang.Object[])>(v);
<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.nio.file.WatchEvent$Kind[] INTEREST_PATH_KINDS> = v;
v = staticinvoke <org.apache.commons.logging.LogFactory: org.apache.commons.logging.Log getLog(java.lang.Class)>(class "Lorg/apache/dubbo/common/config/configcenter/file/FileSystemDynamicConfiguration;");
<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: org.apache.commons.logging.Log logger> = v;
v = new org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$1;
specialinvoke v.<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration$1: void <init>()>();
v = staticinvoke <java.util.Collections: java.util.Map unmodifiableMap(java.util.Map)>(v);
<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Map CONFIG_CHANGE_TYPES_MAP> = v;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Optional newWatchService()>();
<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Optional watchService> = v;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.Optional watchService>;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: boolean detectPoolingBasedWatchService(java.util.Optional)>(v);
<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: boolean BASED_POOLING_WATCH_SERVICE> = v;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.nio.file.WatchEvent$Modifier[] initWatchEventModifiers()>();
<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.nio.file.WatchEvent$Modifier[] MODIFIERS> = v;
v = <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.nio.file.WatchEvent$Modifier[] MODIFIERS>;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.Integer initDelay(java.nio.file.WatchEvent$Modifier[])>(v);
<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.lang.Integer DELAY> = v;
v = staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.concurrent.ThreadPoolExecutor newWatchEventsLoopThreadPool()>();
<org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: java.util.concurrent.ThreadPoolExecutor WATCH_EVENTS_LOOP_THREAD_POOL> = v;
staticinvoke <org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration: void registerDubboShutdownHook()>();
return;
}
}