diff --git a/auth/pom.xml b/auth/pom.xml
index a048b81cfe5..afd43988bed 100644
--- a/auth/pom.xml
+++ b/auth/pom.xml
@@ -40,6 +40,10 @@
${project.groupId}
nacos-common
+
+ ${project.groupId}
+ nacos-sys
+
org.springframework.boot
diff --git a/auth/src/main/java/com/alibaba/nacos/auth/common/AuthConfigs.java b/auth/src/main/java/com/alibaba/nacos/auth/common/AuthConfigs.java
index 19638654be0..721359b3608 100644
--- a/auth/src/main/java/com/alibaba/nacos/auth/common/AuthConfigs.java
+++ b/auth/src/main/java/com/alibaba/nacos/auth/common/AuthConfigs.java
@@ -16,12 +16,11 @@
package com.alibaba.nacos.auth.common;
-import com.alibaba.nacos.auth.common.env.ReloadableConfigs;
import com.alibaba.nacos.common.JustForTest;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import io.jsonwebtoken.io.Decoders;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@@ -40,9 +39,6 @@ public class AuthConfigs {
@JustForTest
private static Boolean cachingEnabled = null;
- @Autowired
- private ReloadableConfigs reloadableConfigs;
-
/**
* secret key.
*/
@@ -93,7 +89,7 @@ public boolean isAuthEnabled() {
return BooleanUtils.toBoolean(enabled);
}
return BooleanUtils
- .toBoolean(reloadableConfigs.getProperties().getProperty("nacos.core.auth.enabled", "false"));
+ .toBoolean(ApplicationUtils.getProperty("nacos.core.auth.enabled", "false"));
}
/**
@@ -106,7 +102,7 @@ public boolean isCachingEnabled() {
return cachingEnabled;
}
return BooleanUtils
- .toBoolean(reloadableConfigs.getProperties().getProperty("nacos.core.auth.caching.enabled", "true"));
+ .toBoolean(ApplicationUtils.getProperty("nacos.core.auth.caching.enabled", "true"));
}
@JustForTest
diff --git a/auth/src/main/java/com/alibaba/nacos/auth/common/env/ReloadableConfigs.java b/auth/src/main/java/com/alibaba/nacos/auth/common/env/ReloadableConfigs.java
deleted file mode 100644
index 6984ad52e7f..00000000000
--- a/auth/src/main/java/com/alibaba/nacos/auth/common/env/ReloadableConfigs.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright 1999-2018 Alibaba Group Holding Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.nacos.auth.common.env;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Properties;
-
-/**
- * Reload application.properties.
- *
- * @author nkorange
- * @author mai.jh
- * @since 1.2.0
- */
-@Component
-public class ReloadableConfigs {
-
- private static final String FILE_PREFIX = "file:";
-
- private Properties properties;
-
- @Value("${spring.config.location:}")
- private String path;
-
- /**
- * Periodically load configuration file information.
- *
- * @throws IOException IOException
- */
- @Scheduled(fixedRate = 5000)
- public void reload() throws IOException {
- final Properties properties = new Properties();
- InputStream inputStream = null;
- if (StringUtils.isNotBlank(path) && path.contains(FILE_PREFIX)) {
- String[] paths = path.split(",");
- path = paths[paths.length - 1].substring(FILE_PREFIX.length());
- }
- try {
- inputStream = new FileInputStream(new File(path + "application.properties"));
- } catch (Exception ignore) {
- }
- if (inputStream == null) {
- inputStream = getClass().getResourceAsStream("/application.properties");
- }
- properties.load(inputStream);
- inputStream.close();
- this.properties = properties;
- }
-
- public final Properties getProperties() {
- return properties;
- }
-}
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionDistributedEmbedStorage.java b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionDistributedEmbedStorage.java
index 176b1162e82..5d3d0b8a64e 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionDistributedEmbedStorage.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionDistributedEmbedStorage.java
@@ -17,7 +17,7 @@
package com.alibaba.nacos.config.server.configuration;
import com.alibaba.nacos.config.server.utils.PropertyUtil;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionStandaloneEmbedStorage.java b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionStandaloneEmbedStorage.java
index 4380d3811cd..2a6fcf56de7 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionStandaloneEmbedStorage.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/configuration/ConditionStandaloneEmbedStorage.java
@@ -17,7 +17,7 @@
package com.alibaba.nacos.config.server.configuration;
import com.alibaba.nacos.config.server.utils.PropertyUtil;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java
index be8505eede6..90d42a3bd43 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigController.java
@@ -45,7 +45,7 @@
import com.alibaba.nacos.config.server.utils.RequestUtil;
import com.alibaba.nacos.config.server.utils.TimeUtils;
import com.alibaba.nacos.config.server.utils.ZipUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.slf4j.Logger;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigOpsController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigOpsController.java
index 54bf19c2323..6c94e1d984c 100755
--- a/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigOpsController.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigOpsController.java
@@ -31,7 +31,7 @@
import com.alibaba.nacos.config.server.service.repository.embedded.DatabaseOperate;
import com.alibaba.nacos.config.server.utils.LogUtil;
import com.alibaba.nacos.config.server.utils.PropertyUtil;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.WebUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java b/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java
index 1be5375c08d..10870b97755 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/controller/HealthController.java
@@ -20,7 +20,7 @@
import com.alibaba.nacos.config.server.service.datasource.DataSourceService;
import com.alibaba.nacos.config.server.service.datasource.DynamicDataSource;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/model/app/ApplicationInfo.java b/config/src/main/java/com/alibaba/nacos/config/server/model/app/ApplicationInfo.java
index 48930e5a19c..0100068adc2 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/model/app/ApplicationInfo.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/model/app/ApplicationInfo.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.config.server.model.app;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
/**
* ApplicationInfo.
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/ConfigChangePublisher.java b/config/src/main/java/com/alibaba/nacos/config/server/service/ConfigChangePublisher.java
index 99fdeaf0b95..9286416572b 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/ConfigChangePublisher.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/ConfigChangePublisher.java
@@ -19,7 +19,7 @@
import com.alibaba.nacos.common.notify.NotifyCenter;
import com.alibaba.nacos.config.server.model.event.ConfigDataChangeEvent;
import com.alibaba.nacos.config.server.utils.PropertyUtil;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
/**
* ConfigChangePublisher.
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/ConfigSubService.java b/config/src/main/java/com/alibaba/nacos/config/server/service/ConfigSubService.java
index 157f373a532..03b6bc8cb92 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/ConfigSubService.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/ConfigSubService.java
@@ -25,7 +25,7 @@
import com.alibaba.nacos.config.server.utils.LogUtil;
import com.alibaba.nacos.core.cluster.Member;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceServiceImpl.java
index 72510128265..58184d3dfd3 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceServiceImpl.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceServiceImpl.java
@@ -42,7 +42,7 @@
import com.alibaba.nacos.config.server.monitor.MetricsMonitor;
import com.alibaba.nacos.config.server.utils.ConfigExecutor;
import com.alibaba.nacos.config.server.utils.PropertyUtil;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.zaxxer.hikari.HikariDataSource;
/**
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/LocalDataSourceServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/LocalDataSourceServiceImpl.java
index 068e50679f0..3fb412e4d94 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/LocalDataSourceServiceImpl.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/LocalDataSourceServiceImpl.java
@@ -21,8 +21,8 @@
import com.alibaba.nacos.config.server.constant.Constants;
import com.alibaba.nacos.config.server.utils.LogUtil;
import com.alibaba.nacos.config.server.utils.PropertyUtil;
-import com.alibaba.nacos.core.utils.DiskUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
import com.zaxxer.hikari.HikariDataSource;
import java.io.File;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/dump/DumpService.java b/config/src/main/java/com/alibaba/nacos/config/server/service/dump/DumpService.java
index a0ebf570c54..f5d14285e7e 100755
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/dump/DumpService.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/dump/DumpService.java
@@ -49,8 +49,8 @@
import com.alibaba.nacos.config.server.utils.LogUtil;
import com.alibaba.nacos.config.server.utils.TimeUtils;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import com.alibaba.nacos.core.utils.TimerContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/dump/EmbeddedDumpService.java b/config/src/main/java/com/alibaba/nacos/config/server/service/dump/EmbeddedDumpService.java
index f3d645ae12a..85abd81fa31 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/dump/EmbeddedDumpService.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/dump/EmbeddedDumpService.java
@@ -28,7 +28,7 @@
import com.alibaba.nacos.consistency.cp.MetadataKey;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
import com.alibaba.nacos.core.distributed.ProtocolManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.GlobalExecutor;
import org.springframework.context.annotation.Conditional;
import org.springframework.stereotype.Component;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/merge/MergeDatumService.java b/config/src/main/java/com/alibaba/nacos/config/server/service/merge/MergeDatumService.java
index 61daddd3e6a..ef34f1d0148 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/merge/MergeDatumService.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/merge/MergeDatumService.java
@@ -27,8 +27,8 @@
import com.alibaba.nacos.config.server.utils.PropertyUtil;
import com.alibaba.nacos.config.server.utils.TimeUtils;
import com.alibaba.nacos.core.distributed.ProtocolManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/merge/MergeTaskProcessor.java b/config/src/main/java/com/alibaba/nacos/config/server/service/merge/MergeTaskProcessor.java
index 44a7a308503..063a244f874 100755
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/merge/MergeTaskProcessor.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/merge/MergeTaskProcessor.java
@@ -28,7 +28,7 @@
import com.alibaba.nacos.config.server.service.trace.ConfigTraceService;
import com.alibaba.nacos.config.server.utils.ContentUtils;
import com.alibaba.nacos.config.server.utils.TimeUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.java b/config/src/main/java/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.java
index f38774bf551..102da8fc2ba 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.java
@@ -32,8 +32,8 @@
import com.alibaba.nacos.config.server.utils.LogUtil;
import com.alibaba.nacos.core.cluster.Member;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/notify/NotifyTaskProcessor.java b/config/src/main/java/com/alibaba/nacos/config/server/service/notify/NotifyTaskProcessor.java
index 9002f0eb8f5..79bdd56c484 100755
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/notify/NotifyTaskProcessor.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/notify/NotifyTaskProcessor.java
@@ -24,8 +24,8 @@
import com.alibaba.nacos.config.server.service.trace.ConfigTraceService;
import com.alibaba.nacos.core.cluster.Member;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/DerbySnapshotOperation.java b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/DerbySnapshotOperation.java
index 8fa6c7b101d..7357c393d6b 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/DerbySnapshotOperation.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/DerbySnapshotOperation.java
@@ -27,8 +27,8 @@
import com.alibaba.nacos.consistency.snapshot.SnapshotOperation;
import com.alibaba.nacos.consistency.snapshot.Writer;
import com.alibaba.nacos.core.distributed.raft.utils.RaftExecutor;
-import com.alibaba.nacos.core.utils.DiskUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.TimerContext;
import com.alipay.sofa.jraft.util.CRC64;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/DistributedDatabaseOperateImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/DistributedDatabaseOperateImpl.java
index 081a7e5dd00..cfd0a7b19c1 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/DistributedDatabaseOperateImpl.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/DistributedDatabaseOperateImpl.java
@@ -57,7 +57,7 @@
import com.alibaba.nacos.core.cluster.ServerMemberManager;
import com.alibaba.nacos.core.distributed.ProtocolManager;
import com.alibaba.nacos.core.utils.ClassUtils;
-import com.alibaba.nacos.core.utils.DiskUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
import com.alibaba.nacos.core.utils.GenericType;
import com.google.common.base.Preconditions;
import com.google.protobuf.ByteString;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/StandaloneDatabaseOperateImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/StandaloneDatabaseOperateImpl.java
index 332494fb0f6..d556e9d3d1b 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/StandaloneDatabaseOperateImpl.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/StandaloneDatabaseOperateImpl.java
@@ -24,7 +24,7 @@
import com.alibaba.nacos.config.server.service.datasource.DynamicDataSource;
import com.alibaba.nacos.config.server.service.sql.ModifyRequest;
import com.alibaba.nacos.config.server.utils.LogUtil;
-import com.alibaba.nacos.core.utils.DiskUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.context.annotation.Conditional;
import org.springframework.jdbc.core.JdbcTemplate;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalStoragePaginationHelperImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalStoragePaginationHelperImpl.java
index 96e1311e0ee..18323134e52 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalStoragePaginationHelperImpl.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalStoragePaginationHelperImpl.java
@@ -20,7 +20,7 @@
import com.alibaba.nacos.config.server.service.repository.PaginationHelper;
import com.alibaba.nacos.config.server.service.sql.EmbeddedStorageContextUtils;
import com.alibaba.nacos.config.server.utils.PropertyUtil;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/sql/EmbeddedStorageContextUtils.java b/config/src/main/java/com/alibaba/nacos/config/server/service/sql/EmbeddedStorageContextUtils.java
index 3a4f3137203..8fe67939661 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/sql/EmbeddedStorageContextUtils.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/sql/EmbeddedStorageContextUtils.java
@@ -21,7 +21,7 @@
import com.alibaba.nacos.config.server.constant.Constants;
import com.alibaba.nacos.config.server.model.ConfigInfo;
import com.alibaba.nacos.config.server.model.event.ConfigDumpEvent;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import java.sql.Timestamp;
import java.util.ArrayList;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/trace/ConfigTraceService.java b/config/src/main/java/com/alibaba/nacos/config/server/service/trace/ConfigTraceService.java
index de92852b75e..d1ae51f42c2 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/trace/ConfigTraceService.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/trace/ConfigTraceService.java
@@ -20,7 +20,7 @@
import com.alibaba.nacos.config.server.constant.Constants;
import com.alibaba.nacos.config.server.monitor.MetricsMonitor;
import com.alibaba.nacos.config.server.utils.LogUtil;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/utils/DiskUtil.java b/config/src/main/java/com/alibaba/nacos/config/server/utils/DiskUtil.java
index abfaae41832..9096a84c660 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/utils/DiskUtil.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/utils/DiskUtil.java
@@ -19,7 +19,7 @@
import com.alibaba.nacos.common.utils.IoUtils;
import com.alibaba.nacos.common.utils.MD5Utils;
import com.alibaba.nacos.config.server.constant.Constants;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/utils/PropertyUtil.java b/config/src/main/java/com/alibaba/nacos/config/server/utils/PropertyUtil.java
index 91d7676c23c..7a62a66b718 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/utils/PropertyUtil.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/utils/PropertyUtil.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.config.server.utils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.slf4j.Logger;
import org.springframework.context.ApplicationContextInitializer;
import org.springframework.context.ConfigurableApplicationContext;
diff --git a/config/src/test/java/com/alibaba/nacos/config/server/model/ConfigInfoTest.java b/config/src/test/java/com/alibaba/nacos/config/server/model/ConfigInfoTest.java
index 321a69e9cc4..fb0225ed5e4 100644
--- a/config/src/test/java/com/alibaba/nacos/config/server/model/ConfigInfoTest.java
+++ b/config/src/test/java/com/alibaba/nacos/config/server/model/ConfigInfoTest.java
@@ -19,7 +19,7 @@
import com.alibaba.nacos.common.utils.JacksonUtils;
import com.alibaba.nacos.consistency.IdGenerator;
import com.alibaba.nacos.core.distributed.id.SnowFlowerIdGenerator;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.core.env.StandardEnvironment;
diff --git a/config/src/test/java/com/alibaba/nacos/config/server/service/ConfigChangePublisherTest.java b/config/src/test/java/com/alibaba/nacos/config/server/service/ConfigChangePublisherTest.java
index 224e1e6fa68..154106bb0ad 100644
--- a/config/src/test/java/com/alibaba/nacos/config/server/service/ConfigChangePublisherTest.java
+++ b/config/src/test/java/com/alibaba/nacos/config/server/service/ConfigChangePublisherTest.java
@@ -21,7 +21,7 @@
import com.alibaba.nacos.common.notify.listener.Subscriber;
import com.alibaba.nacos.config.server.model.event.ConfigDataChangeEvent;
import com.alibaba.nacos.config.server.utils.PropertyUtil;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Test;
diff --git a/console/src/main/java/com/alibaba/nacos/console/controller/ServerStateController.java b/console/src/main/java/com/alibaba/nacos/console/controller/ServerStateController.java
index c1fc820c2b3..d889d1ad318 100644
--- a/console/src/main/java/com/alibaba/nacos/console/controller/ServerStateController.java
+++ b/console/src/main/java/com/alibaba/nacos/console/controller/ServerStateController.java
@@ -17,7 +17,7 @@
package com.alibaba.nacos.console.controller;
import com.alibaba.nacos.common.utils.VersionUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/console/src/main/resources/application.properties b/console/src/main/resources/application.properties
index bce0d38c8ab..06ac2498b93 100644
--- a/console/src/main/resources/application.properties
+++ b/console/src/main/resources/application.properties
@@ -175,3 +175,4 @@ nacos.istio.mcp.server.enabled=false
# nacos.core.protocol.raft.data.read_index_type=ReadOnlySafe
### rpc request timeout, default 5 seconds
# nacos.core.protocol.raft.data.rpc_request_timeout_ms=5000
+
diff --git a/core/src/main/java/com/alibaba/nacos/core/auth/AuthFilter.java b/core/src/main/java/com/alibaba/nacos/core/auth/AuthFilter.java
index 95fc13a194c..535778bb39a 100644
--- a/core/src/main/java/com/alibaba/nacos/core/auth/AuthFilter.java
+++ b/core/src/main/java/com/alibaba/nacos/core/auth/AuthFilter.java
@@ -24,7 +24,7 @@
import com.alibaba.nacos.auth.parser.ResourceParser;
import com.alibaba.nacos.common.utils.ExceptionUtil;
import com.alibaba.nacos.core.code.ControllerMethodsCache;
-import com.alibaba.nacos.core.utils.Constants;
+import com.alibaba.nacos.sys.env.Constants;
import com.alibaba.nacos.core.utils.Loggers;
import com.alibaba.nacos.core.utils.WebUtils;
import org.apache.commons.lang3.StringUtils;
diff --git a/core/src/main/java/com/alibaba/nacos/core/auth/condition/PathRequestCondition.java b/core/src/main/java/com/alibaba/nacos/core/auth/condition/PathRequestCondition.java
index 6af1ff269c0..1c674d2aec7 100644
--- a/core/src/main/java/com/alibaba/nacos/core/auth/condition/PathRequestCondition.java
+++ b/core/src/main/java/com/alibaba/nacos/core/auth/condition/PathRequestCondition.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.core.auth.condition;
-import static com.alibaba.nacos.core.utils.Constants.REQUEST_PATH_SEPARATOR;
+import static com.alibaba.nacos.sys.env.Constants.REQUEST_PATH_SEPARATOR;
/**
* request path info. method:{@link org.springframework.web.bind.annotation.RequestMapping#method()} path: {@link
diff --git a/core/src/main/java/com/alibaba/nacos/core/cluster/Member.java b/core/src/main/java/com/alibaba/nacos/core/cluster/Member.java
index 83040274f98..65090a155ce 100644
--- a/core/src/main/java/com/alibaba/nacos/core/cluster/Member.java
+++ b/core/src/main/java/com/alibaba/nacos/core/cluster/Member.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.core.cluster;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.Collections;
diff --git a/core/src/main/java/com/alibaba/nacos/core/cluster/MemberUtils.java b/core/src/main/java/com/alibaba/nacos/core/cluster/MemberUtils.java
index fa88a160306..02d2fbf10c0 100644
--- a/core/src/main/java/com/alibaba/nacos/core/cluster/MemberUtils.java
+++ b/core/src/main/java/com/alibaba/nacos/core/cluster/MemberUtils.java
@@ -17,8 +17,8 @@
package com.alibaba.nacos.core.cluster;
import com.alibaba.nacos.common.utils.ExceptionUtil;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.Loggers;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.lang3.StringUtils;
import java.time.LocalDateTime;
diff --git a/core/src/main/java/com/alibaba/nacos/core/cluster/ServerMemberManager.java b/core/src/main/java/com/alibaba/nacos/core/cluster/ServerMemberManager.java
index 77ac3a83a62..0101d2683d5 100644
--- a/core/src/main/java/com/alibaba/nacos/core/cluster/ServerMemberManager.java
+++ b/core/src/main/java/com/alibaba/nacos/core/cluster/ServerMemberManager.java
@@ -32,13 +32,13 @@
import com.alibaba.nacos.common.utils.ExceptionUtil;
import com.alibaba.nacos.common.utils.VersionUtils;
import com.alibaba.nacos.core.cluster.lookup.LookupFactory;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.Commons;
-import com.alibaba.nacos.core.utils.Constants;
import com.alibaba.nacos.core.utils.GenericType;
import com.alibaba.nacos.core.utils.GlobalExecutor;
-import com.alibaba.nacos.core.utils.InetUtils;
import com.alibaba.nacos.core.utils.Loggers;
+import com.alibaba.nacos.sys.env.Constants;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.web.context.WebServerInitializedEvent;
import org.springframework.context.ApplicationListener;
diff --git a/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/AddressServerMemberLookup.java b/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/AddressServerMemberLookup.java
index 87331de113d..14d64f08e74 100644
--- a/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/AddressServerMemberLookup.java
+++ b/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/AddressServerMemberLookup.java
@@ -25,10 +25,10 @@
import com.alibaba.nacos.common.utils.ExceptionUtil;
import com.alibaba.nacos.core.cluster.AbstractMemberLookup;
import com.alibaba.nacos.core.cluster.MemberUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.GenericType;
import com.alibaba.nacos.core.utils.GlobalExecutor;
import com.alibaba.nacos.core.utils.Loggers;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.Reader;
diff --git a/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/FileConfigMemberLookup.java b/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/FileConfigMemberLookup.java
index f51294db085..4228119a74c 100644
--- a/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/FileConfigMemberLookup.java
+++ b/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/FileConfigMemberLookup.java
@@ -20,11 +20,11 @@
import com.alibaba.nacos.core.cluster.AbstractMemberLookup;
import com.alibaba.nacos.core.cluster.Member;
import com.alibaba.nacos.core.cluster.MemberUtils;
-import com.alibaba.nacos.core.file.FileChangeEvent;
-import com.alibaba.nacos.core.file.FileWatcher;
-import com.alibaba.nacos.core.file.WatchFileCenter;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.file.FileChangeEvent;
+import com.alibaba.nacos.sys.file.FileWatcher;
+import com.alibaba.nacos.sys.file.WatchFileCenter;
import com.alibaba.nacos.core.utils.Loggers;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
diff --git a/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/LookupFactory.java b/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/LookupFactory.java
index 710ee598bf3..68fd2693834 100644
--- a/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/LookupFactory.java
+++ b/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/LookupFactory.java
@@ -20,7 +20,7 @@
import com.alibaba.nacos.common.utils.StringUtils;
import com.alibaba.nacos.core.cluster.MemberLookup;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.Loggers;
import java.io.File;
diff --git a/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/StandaloneMemberLookup.java b/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/StandaloneMemberLookup.java
index 65ffecab6b2..a5d13254cf5 100644
--- a/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/StandaloneMemberLookup.java
+++ b/core/src/main/java/com/alibaba/nacos/core/cluster/lookup/StandaloneMemberLookup.java
@@ -18,8 +18,8 @@
import com.alibaba.nacos.core.cluster.AbstractMemberLookup;
import com.alibaba.nacos.core.cluster.MemberUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import java.util.Collections;
diff --git a/core/src/main/java/com/alibaba/nacos/core/code/ControllerMethodsCache.java b/core/src/main/java/com/alibaba/nacos/core/code/ControllerMethodsCache.java
index 690ba1de486..9ddef611705 100644
--- a/core/src/main/java/com/alibaba/nacos/core/code/ControllerMethodsCache.java
+++ b/core/src/main/java/com/alibaba/nacos/core/code/ControllerMethodsCache.java
@@ -45,7 +45,8 @@
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
-import static com.alibaba.nacos.core.utils.Constants.REQUEST_PATH_SEPARATOR;
+import static com.alibaba.nacos.sys.env.Constants.REQUEST_PATH_SEPARATOR;
+
/**
* Method cache.
diff --git a/core/src/main/java/com/alibaba/nacos/core/code/LoggingSpringApplicationRunListener.java b/core/src/main/java/com/alibaba/nacos/core/code/LoggingSpringApplicationRunListener.java
index 37b052f87ed..780d8e6fbba 100644
--- a/core/src/main/java/com/alibaba/nacos/core/code/LoggingSpringApplicationRunListener.java
+++ b/core/src/main/java/com/alibaba/nacos/core/code/LoggingSpringApplicationRunListener.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.core.code;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
diff --git a/core/src/main/java/com/alibaba/nacos/core/code/StandaloneProfileApplicationListener.java b/core/src/main/java/com/alibaba/nacos/core/code/StandaloneProfileApplicationListener.java
index 10d7338947a..e741db0e459 100644
--- a/core/src/main/java/com/alibaba/nacos/core/code/StandaloneProfileApplicationListener.java
+++ b/core/src/main/java/com/alibaba/nacos/core/code/StandaloneProfileApplicationListener.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.core.code;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
@@ -27,8 +27,8 @@
import java.util.Arrays;
-import static com.alibaba.nacos.core.utils.Constants.STANDALONE_MODE_PROPERTY_NAME;
-import static com.alibaba.nacos.core.utils.Constants.STANDALONE_SPRING_PROFILE;
+import static com.alibaba.nacos.sys.env.Constants.STANDALONE_MODE_PROPERTY_NAME;
+import static com.alibaba.nacos.sys.env.Constants.STANDALONE_SPRING_PROFILE;
/**
* Standalone {@link Profile} {@link ApplicationListener} for {@link ApplicationEnvironmentPreparedEvent}.
diff --git a/core/src/main/java/com/alibaba/nacos/core/code/StartingSpringApplicationRunListener.java b/core/src/main/java/com/alibaba/nacos/core/code/StartingSpringApplicationRunListener.java
index 0b8c69777fa..e666d1a6bcb 100644
--- a/core/src/main/java/com/alibaba/nacos/core/code/StartingSpringApplicationRunListener.java
+++ b/core/src/main/java/com/alibaba/nacos/core/code/StartingSpringApplicationRunListener.java
@@ -21,10 +21,10 @@
import com.alibaba.nacos.common.executor.ThreadPoolManager;
import com.alibaba.nacos.common.http.HttpClientManager;
import com.alibaba.nacos.common.notify.NotifyCenter;
-import com.alibaba.nacos.core.file.WatchFileCenter;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.DiskUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.file.WatchFileCenter;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
diff --git a/core/src/main/java/com/alibaba/nacos/core/controller/NacosClusterController.java b/core/src/main/java/com/alibaba/nacos/core/controller/NacosClusterController.java
index fc54d67a6cb..50f3a02e5a6 100644
--- a/core/src/main/java/com/alibaba/nacos/core/controller/NacosClusterController.java
+++ b/core/src/main/java/com/alibaba/nacos/core/controller/NacosClusterController.java
@@ -29,7 +29,7 @@
import com.alibaba.nacos.core.cluster.MemberUtils;
import com.alibaba.nacos.core.cluster.NodeState;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.Commons;
import com.alibaba.nacos.core.utils.GenericType;
import com.alibaba.nacos.core.utils.Loggers;
diff --git a/core/src/main/java/com/alibaba/nacos/core/distributed/ProtocolManager.java b/core/src/main/java/com/alibaba/nacos/core/distributed/ProtocolManager.java
index bf2729027e4..0c434cf4435 100644
--- a/core/src/main/java/com/alibaba/nacos/core/distributed/ProtocolManager.java
+++ b/core/src/main/java/com/alibaba/nacos/core/distributed/ProtocolManager.java
@@ -26,7 +26,7 @@
import com.alibaba.nacos.core.cluster.MemberMetaDataConstants;
import com.alibaba.nacos.core.cluster.MemberUtils;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.ClassUtils;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/core/src/main/java/com/alibaba/nacos/core/distributed/id/SnowFlowerIdGenerator.java b/core/src/main/java/com/alibaba/nacos/core/distributed/id/SnowFlowerIdGenerator.java
index 7f483e987d2..b8c38e1e317 100644
--- a/core/src/main/java/com/alibaba/nacos/core/distributed/id/SnowFlowerIdGenerator.java
+++ b/core/src/main/java/com/alibaba/nacos/core/distributed/id/SnowFlowerIdGenerator.java
@@ -17,7 +17,7 @@
package com.alibaba.nacos.core.distributed.id;
import com.alibaba.nacos.consistency.IdGenerator;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.google.common.base.Preconditions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/src/main/java/com/alibaba/nacos/core/distributed/raft/JRaftServer.java b/core/src/main/java/com/alibaba/nacos/core/distributed/raft/JRaftServer.java
index e3073e421a8..8de374d0689 100644
--- a/core/src/main/java/com/alibaba/nacos/core/distributed/raft/JRaftServer.java
+++ b/core/src/main/java/com/alibaba/nacos/core/distributed/raft/JRaftServer.java
@@ -39,7 +39,7 @@
import com.alibaba.nacos.core.distributed.raft.utils.RaftExecutor;
import com.alibaba.nacos.core.distributed.raft.utils.RaftOptionsBuilder;
import com.alibaba.nacos.core.monitor.MetricsMonitor;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.Loggers;
import com.alipay.sofa.jraft.CliService;
import com.alipay.sofa.jraft.Node;
diff --git a/core/src/main/java/com/alibaba/nacos/core/distributed/raft/utils/JRaftUtils.java b/core/src/main/java/com/alibaba/nacos/core/distributed/raft/utils/JRaftUtils.java
index c672f6b36ae..02fb26bbf21 100644
--- a/core/src/main/java/com/alibaba/nacos/core/distributed/raft/utils/JRaftUtils.java
+++ b/core/src/main/java/com/alibaba/nacos/core/distributed/raft/utils/JRaftUtils.java
@@ -25,9 +25,9 @@
import com.alibaba.nacos.core.distributed.raft.JRaftServer;
import com.alibaba.nacos.core.distributed.raft.processor.NacosGetRequestProcessor;
import com.alibaba.nacos.core.distributed.raft.processor.NacosLogProcessor;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.DiskUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.Loggers;
+import com.alibaba.nacos.sys.utils.DiskUtils;
import com.alipay.sofa.jraft.CliService;
import com.alipay.sofa.jraft.RouteTable;
import com.alipay.sofa.jraft.Status;
diff --git a/core/src/main/java/com/alibaba/nacos/core/utils/PropertyUtil.java b/core/src/main/java/com/alibaba/nacos/core/utils/PropertyUtil.java
deleted file mode 100644
index cb95202e01f..00000000000
--- a/core/src/main/java/com/alibaba/nacos/core/utils/PropertyUtil.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 1999-2018 Alibaba Group Holding Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.alibaba.nacos.core.utils;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
-
-/**
- * operation property.
- *
- * @author Nacos
- */
-public class PropertyUtil {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(PropertyUtil.class);
-
- private static Properties properties = new Properties();
-
- static {
- InputStream inputStream = null;
- try {
- String baseDir = System.getProperty("nacos.home");
- if (StringUtils.isNotBlank(baseDir)) {
- inputStream = new FileInputStream(baseDir + "/conf/application.properties");
- } else {
- inputStream = PropertyUtil.class.getResourceAsStream("/application.properties");
- }
- properties.load(inputStream);
- } catch (Exception e) {
- LOGGER.error("read property file error:" + e);
- } finally {
- IOUtils.closeQuietly(inputStream);
- }
- }
-
- public static String getProperty(String key) {
- return properties.getProperty(key);
- }
-
- public static String getProperty(String key, String defaultValue) {
- return properties.getProperty(key, defaultValue);
- }
-
- public static List getPropertyList(String key) {
- List valueList = new ArrayList<>();
-
- for (int i = 0; i < Integer.MAX_VALUE; i++) {
- String value = properties.getProperty(key + "[" + i + "]");
- if (StringUtils.isBlank(value)) {
- break;
- }
-
- valueList.add(value);
- }
-
- return valueList;
- }
-
-}
diff --git a/core/src/main/java/com/alibaba/nacos/core/utils/WebUtils.java b/core/src/main/java/com/alibaba/nacos/core/utils/WebUtils.java
index ae2874e5eb1..e8d89917c23 100644
--- a/core/src/main/java/com/alibaba/nacos/core/utils/WebUtils.java
+++ b/core/src/main/java/com/alibaba/nacos/core/utils/WebUtils.java
@@ -20,6 +20,7 @@
import com.alibaba.nacos.common.http.HttpUtils;
import com.alibaba.nacos.common.model.RestResult;
import com.alibaba.nacos.common.model.RestResultUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.context.request.async.DeferredResult;
import org.springframework.web.multipart.MultipartFile;
diff --git a/core/src/main/resources/META-INF/logback/nacos.xml b/core/src/main/resources/META-INF/logback/nacos.xml
index 9bbbf7aecf2..68b327681cf 100644
--- a/core/src/main/resources/META-INF/logback/nacos.xml
+++ b/core/src/main/resources/META-INF/logback/nacos.xml
@@ -205,7 +205,7 @@
-
+
diff --git a/core/src/main/resources/META-INF/spring.factories b/core/src/main/resources/META-INF/spring.factories
index eb53776346a..c63c723f268 100644
--- a/core/src/main/resources/META-INF/spring.factories
+++ b/core/src/main/resources/META-INF/spring.factories
@@ -1,15 +1,6 @@
-# ApplicationContextInitializer
-org.springframework.context.ApplicationContextInitializer=\
- com.alibaba.nacos.core.utils.ApplicationUtils
-
# ApplicationListener
org.springframework.context.ApplicationListener=\
com.alibaba.nacos.core.code.StandaloneProfileApplicationListener
-
-# EnvironmentPostProcessor
-org.springframework.boot.env.EnvironmentPostProcessor=\
-com.alibaba.nacos.core.env.NacosDefaultPropertySourceEnvironmentPostProcessor
-
# SpringApplicationRunListener
org.springframework.boot.SpringApplicationRunListener=\
com.alibaba.nacos.core.code.LoggingSpringApplicationRunListener,\
diff --git a/core/src/test/java/com/alibaba/nacos/core/listener/StandaloneProfileApplicationListenerTest.java b/core/src/test/java/com/alibaba/nacos/core/listener/StandaloneProfileApplicationListenerTest.java
index d82703dcc21..ebf12f34765 100644
--- a/core/src/test/java/com/alibaba/nacos/core/listener/StandaloneProfileApplicationListenerTest.java
+++ b/core/src/test/java/com/alibaba/nacos/core/listener/StandaloneProfileApplicationListenerTest.java
@@ -27,7 +27,7 @@
import org.springframework.core.env.Environment;
import org.springframework.test.context.junit4.SpringRunner;
-import static com.alibaba.nacos.core.utils.Constants.STANDALONE_SPRING_PROFILE;
+import static com.alibaba.nacos.sys.env.Constants.STANDALONE_SPRING_PROFILE;
/**
* {@link StandaloneProfileApplicationListener} Test.
diff --git a/core/src/test/java/com/alibaba/nacos/core/utils/SystemUtilsTest.java b/core/src/test/java/com/alibaba/nacos/core/utils/SystemUtilsTest.java
index a60c826c2f0..5f6843d7ae0 100644
--- a/core/src/test/java/com/alibaba/nacos/core/utils/SystemUtilsTest.java
+++ b/core/src/test/java/com/alibaba/nacos/core/utils/SystemUtilsTest.java
@@ -16,6 +16,7 @@
package com.alibaba.nacos.core.utils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.junit.BeforeClass;
@@ -26,8 +27,8 @@
import java.util.List;
import java.util.Random;
-import static com.alibaba.nacos.core.utils.Constants.PREFER_HOSTNAME_OVER_IP_PROPERTY_NAME;
-import static com.alibaba.nacos.core.utils.Constants.STANDALONE_MODE_PROPERTY_NAME;
+import static com.alibaba.nacos.sys.env.Constants.PREFER_HOSTNAME_OVER_IP_PROPERTY_NAME;
+import static com.alibaba.nacos.sys.env.Constants.STANDALONE_MODE_PROPERTY_NAME;
/**
* {@link ApplicationUtils} Test.
diff --git a/distribution/conf/nacos-logback.xml b/distribution/conf/nacos-logback.xml
index 3779fbc66a8..b4a731117ff 100644
--- a/distribution/conf/nacos-logback.xml
+++ b/distribution/conf/nacos-logback.xml
@@ -624,7 +624,7 @@
-
+
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/cluster/ServerListManager.java b/naming/src/main/java/com/alibaba/nacos/naming/cluster/ServerListManager.java
index 5fe4fe38ccd..251e8ea7ea6 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/cluster/ServerListManager.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/cluster/ServerListManager.java
@@ -24,7 +24,7 @@
import com.alibaba.nacos.core.cluster.MemberMetaDataConstants;
import com.alibaba.nacos.core.cluster.NodeState;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.consistency.persistent.raft.RaftPeer;
import com.alibaba.nacos.naming.misc.GlobalExecutor;
import com.alibaba.nacos.naming.misc.Loggers;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/component/DistroDataStorageImpl.java b/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/component/DistroDataStorageImpl.java
index 111b5065bbc..645229588fe 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/component/DistroDataStorageImpl.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/consistency/ephemeral/distro/component/DistroDataStorageImpl.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.naming.consistency.ephemeral.distro.component;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.cluster.transport.Serializer;
import com.alibaba.nacos.naming.consistency.Datum;
import com.alibaba.nacos.naming.consistency.KeyBuilder;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftCore.java b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftCore.java
index 96e12900aac..bf82aa17177 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftCore.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftCore.java
@@ -21,8 +21,8 @@
import com.alibaba.nacos.common.http.Callback;
import com.alibaba.nacos.common.model.RestResult;
import com.alibaba.nacos.common.utils.JacksonUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.consistency.DataOperation;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.ClassUtils;
import com.alibaba.nacos.naming.NamingApp;
import com.alibaba.nacos.naming.consistency.Datum;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftPeerSet.java b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftPeerSet.java
index c988049a8ae..569d7c1ae70 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftPeerSet.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftPeerSet.java
@@ -24,7 +24,7 @@
import com.alibaba.nacos.core.cluster.MemberChangeListener;
import com.alibaba.nacos.core.cluster.MembersChangeEvent;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.misc.HttpClient;
import com.alibaba.nacos.naming.misc.Loggers;
import com.alibaba.nacos.naming.misc.NetUtils;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftProxy.java b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftProxy.java
index 7240014cab4..3a427afe7b3 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftProxy.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftProxy.java
@@ -16,8 +16,8 @@
package com.alibaba.nacos.naming.consistency.persistent.raft;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.common.model.RestResult;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
import com.alibaba.nacos.naming.misc.HttpClient;
import com.alibaba.nacos.naming.misc.UtilsAndCommons;
import org.springframework.http.HttpMethod;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/HealthController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/HealthController.java
index 85957f5f4c7..8b0e39faca3 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/HealthController.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/HealthController.java
@@ -22,7 +22,7 @@
import com.alibaba.nacos.auth.annotation.Secured;
import com.alibaba.nacos.auth.common.ActionTypes;
import com.alibaba.nacos.common.utils.JacksonUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.core.utils.WebUtils;
import com.alibaba.nacos.naming.core.Instance;
import com.alibaba.nacos.naming.core.Service;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/OperatorController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/OperatorController.java
index f0500924ccc..180c931415f 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/OperatorController.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/OperatorController.java
@@ -23,7 +23,7 @@
import com.alibaba.nacos.core.cluster.Member;
import com.alibaba.nacos.core.cluster.NodeState;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.cluster.ServerListManager;
import com.alibaba.nacos.naming.cluster.ServerStatusManager;
import com.alibaba.nacos.naming.consistency.persistent.raft.RaftCore;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/DistroMapper.java b/naming/src/main/java/com/alibaba/nacos/naming/core/DistroMapper.java
index b5ec07095ea..a4212b5e04c 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/core/DistroMapper.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/core/DistroMapper.java
@@ -22,7 +22,7 @@
import com.alibaba.nacos.core.cluster.MembersChangeEvent;
import com.alibaba.nacos.core.cluster.NodeState;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.misc.Loggers;
import com.alibaba.nacos.naming.misc.SwitchDomain;
import org.apache.commons.collections.CollectionUtils;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/Service.java b/naming/src/main/java/com/alibaba/nacos/naming/core/Service.java
index 22095f58a3b..5facf170941 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/core/Service.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/core/Service.java
@@ -17,7 +17,7 @@
package com.alibaba.nacos.naming.core;
import com.alibaba.nacos.common.utils.JacksonUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.common.utils.MD5Utils;
import com.alibaba.nacos.api.common.Constants;
import com.alibaba.nacos.naming.consistency.KeyBuilder;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/SubscribeManager.java b/naming/src/main/java/com/alibaba/nacos/naming/core/SubscribeManager.java
index d0bfe745c45..e0b445ada7c 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/core/SubscribeManager.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/core/SubscribeManager.java
@@ -21,7 +21,7 @@
import com.alibaba.nacos.common.utils.JacksonUtils;
import com.alibaba.nacos.core.cluster.Member;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.misc.HttpClient;
import com.alibaba.nacos.naming.misc.NetUtils;
import com.alibaba.nacos.naming.misc.UtilsAndCommons;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/ClientBeatCheckTask.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/ClientBeatCheckTask.java
index 0222804383a..6de0fd0dbce 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/ClientBeatCheckTask.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/ClientBeatCheckTask.java
@@ -19,7 +19,7 @@
import com.alibaba.nacos.common.http.Callback;
import com.alibaba.nacos.common.model.RestResult;
import com.alibaba.nacos.common.utils.JacksonUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.consistency.KeyBuilder;
import com.alibaba.nacos.naming.core.DistroMapper;
import com.alibaba.nacos.naming.core.Instance;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/ClientBeatProcessor.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/ClientBeatProcessor.java
index 213c2719880..a2b147b6cf4 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/ClientBeatProcessor.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/ClientBeatProcessor.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.naming.healthcheck;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.core.Cluster;
import com.alibaba.nacos.naming.core.Instance;
import com.alibaba.nacos.naming.core.Service;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckCommon.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckCommon.java
index 6df6b3a9d39..ac224b5d0ae 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckCommon.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckCommon.java
@@ -20,7 +20,7 @@
import com.alibaba.nacos.common.utils.JacksonUtils;
import com.alibaba.nacos.core.cluster.Member;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.core.Cluster;
import com.alibaba.nacos.naming.core.DistroMapper;
import com.alibaba.nacos.naming.core.Instance;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckTask.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckTask.java
index 511cc683f06..8599fb8cecc 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckTask.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HealthCheckTask.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.naming.healthcheck;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.core.Cluster;
import com.alibaba.nacos.naming.core.DistroMapper;
import com.alibaba.nacos.naming.misc.Loggers;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/misc/HttpClient.java b/naming/src/main/java/com/alibaba/nacos/naming/misc/HttpClient.java
index a93dbd90985..07941e9dd3f 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/misc/HttpClient.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/misc/HttpClient.java
@@ -27,7 +27,7 @@
import com.alibaba.nacos.common.model.RestResult;
import com.alibaba.nacos.common.utils.HttpMethod;
import com.alibaba.nacos.common.utils.VersionUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/misc/NamingProxy.java b/naming/src/main/java/com/alibaba/nacos/naming/misc/NamingProxy.java
index cb64140610d..5b762d4c196 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/misc/NamingProxy.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/misc/NamingProxy.java
@@ -21,7 +21,7 @@
import com.alibaba.nacos.common.model.RestResult;
import com.alibaba.nacos.common.utils.JacksonUtils;
import com.alibaba.nacos.common.utils.VersionUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/misc/NetUtils.java b/naming/src/main/java/com/alibaba/nacos/naming/misc/NetUtils.java
index bcdf3f568bc..7cd328d28fd 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/misc/NetUtils.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/misc/NetUtils.java
@@ -16,8 +16,8 @@
package com.alibaba.nacos.naming.misc;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
/**
* Net Utils.
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/misc/ServerStatusSynchronizer.java b/naming/src/main/java/com/alibaba/nacos/naming/misc/ServerStatusSynchronizer.java
index cb8cf3f1045..d16e7a2e3e8 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/misc/ServerStatusSynchronizer.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/misc/ServerStatusSynchronizer.java
@@ -16,9 +16,9 @@
package com.alibaba.nacos.naming.misc;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.common.http.Callback;
import com.alibaba.nacos.common.model.RestResult;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
import org.springframework.util.StringUtils;
import java.util.HashMap;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/misc/ServiceStatusSynchronizer.java b/naming/src/main/java/com/alibaba/nacos/naming/misc/ServiceStatusSynchronizer.java
index 94001825942..2f03b14f916 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/misc/ServiceStatusSynchronizer.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/misc/ServiceStatusSynchronizer.java
@@ -19,7 +19,7 @@
import com.alibaba.nacos.common.http.Callback;
import com.alibaba.nacos.common.model.RestResult;
import com.alibaba.nacos.common.utils.JacksonUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.HashMap;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/misc/UtilsAndCommons.java b/naming/src/main/java/com/alibaba/nacos/naming/misc/UtilsAndCommons.java
index fb398bd83e2..bc973da4c8d 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/misc/UtilsAndCommons.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/misc/UtilsAndCommons.java
@@ -20,7 +20,7 @@
import com.alibaba.nacos.api.selector.SelectorType;
import com.alibaba.nacos.common.utils.JacksonUtils;
import com.alibaba.nacos.common.utils.VersionUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.selector.LabelSelector;
import com.alibaba.nacos.naming.selector.NoneSelector;
import com.fasterxml.jackson.core.type.TypeReference;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/selector/LabelSelector.java b/naming/src/main/java/com/alibaba/nacos/naming/selector/LabelSelector.java
index f98615fbaae..dab5aa685c3 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/selector/LabelSelector.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/selector/LabelSelector.java
@@ -22,7 +22,7 @@
import com.alibaba.nacos.api.selector.SelectorType;
import com.alibaba.nacos.cmdb.service.CmdbReader;
import com.alibaba.nacos.common.utils.JacksonUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.core.Instance;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
diff --git a/naming/src/main/java/com/alibaba/nacos/naming/web/TrafficReviseFilter.java b/naming/src/main/java/com/alibaba/nacos/naming/web/TrafficReviseFilter.java
index e0de5bc6917..e738b7e7477 100644
--- a/naming/src/main/java/com/alibaba/nacos/naming/web/TrafficReviseFilter.java
+++ b/naming/src/main/java/com/alibaba/nacos/naming/web/TrafficReviseFilter.java
@@ -17,7 +17,7 @@
package com.alibaba.nacos.naming.web;
import com.alibaba.nacos.common.utils.HttpMethod;
-import com.alibaba.nacos.core.utils.Constants;
+import com.alibaba.nacos.sys.env.Constants;
import com.alibaba.nacos.core.utils.WebUtils;
import com.alibaba.nacos.naming.cluster.ServerStatus;
import com.alibaba.nacos.naming.cluster.ServerStatusManager;
diff --git a/naming/src/test/java/com/alibaba/nacos/naming/BaseTest.java b/naming/src/test/java/com/alibaba/nacos/naming/BaseTest.java
index 9e36156e39f..a81502b5b06 100644
--- a/naming/src/test/java/com/alibaba/nacos/naming/BaseTest.java
+++ b/naming/src/test/java/com/alibaba/nacos/naming/BaseTest.java
@@ -16,7 +16,7 @@
package com.alibaba.nacos.naming;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.consistency.persistent.raft.RaftCore;
import com.alibaba.nacos.naming.consistency.persistent.raft.RaftPeer;
import com.alibaba.nacos.naming.consistency.persistent.raft.RaftPeerSet;
diff --git a/naming/src/test/java/com/alibaba/nacos/naming/core/ClusterTest.java b/naming/src/test/java/com/alibaba/nacos/naming/core/ClusterTest.java
index 49a202b9d99..f57c0474e72 100644
--- a/naming/src/test/java/com/alibaba/nacos/naming/core/ClusterTest.java
+++ b/naming/src/test/java/com/alibaba/nacos/naming/core/ClusterTest.java
@@ -18,7 +18,7 @@
import com.alibaba.nacos.api.naming.pojo.healthcheck.impl.Http;
import com.alibaba.nacos.common.utils.JacksonUtils;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.naming.misc.SwitchDomain;
import com.alibaba.nacos.naming.misc.SwitchDomain.TcpHealthParams;
diff --git a/pom.xml b/pom.xml
index e09e468c7b7..8763e324856 100644
--- a/pom.xml
+++ b/pom.xml
@@ -579,6 +579,7 @@
istio
consistency
auth
+ sys
@@ -686,6 +687,11 @@
nacos-auth
${project.version}
+
+ ${project.groupId}
+ nacos-sys
+ ${project.version}
+
javax.servlet
diff --git a/sys/pom.xml b/sys/pom.xml
new file mode 100644
index 00000000000..0ed61ee19d7
--- /dev/null
+++ b/sys/pom.xml
@@ -0,0 +1,90 @@
+
+
+
+
+
+ com.alibaba.nacos
+ nacos-all
+ 1.4.0-SNAPSHOT
+ ../pom.xml
+
+ 4.0.0
+
+ nacos-sys
+ jar
+ nacos-sys ${project.version}
+ http://nacos.io
+
+
+ UTF-8
+
+
+
+
+ ${project.groupId}
+ nacos-common
+
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.junit.vintage
+ junit-vintage-engine
+
+
+
+
+
+ junit
+ junit
+ test
+
+
+
+ org.springframework
+ spring-test
+
+
+
+ org.springframework.boot
+ spring-boot-test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 8
+
+
+
+
+
\ No newline at end of file
diff --git a/core/src/main/java/com/alibaba/nacos/core/utils/Constants.java b/sys/src/main/java/com/alibaba/nacos/sys/env/Constants.java
similarity index 98%
rename from core/src/main/java/com/alibaba/nacos/core/utils/Constants.java
rename to sys/src/main/java/com/alibaba/nacos/sys/env/Constants.java
index 00baab7a12a..20addac2c70 100644
--- a/core/src/main/java/com/alibaba/nacos/core/utils/Constants.java
+++ b/sys/src/main/java/com/alibaba/nacos/sys/env/Constants.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.nacos.core.utils;
+package com.alibaba.nacos.sys.env;
/**
* Nacos common constants.
diff --git a/sys/src/main/java/com/alibaba/nacos/sys/env/NacosAutoRefreshPropertySourceLoader.java b/sys/src/main/java/com/alibaba/nacos/sys/env/NacosAutoRefreshPropertySourceLoader.java
new file mode 100644
index 00000000000..a82919b5469
--- /dev/null
+++ b/sys/src/main/java/com/alibaba/nacos/sys/env/NacosAutoRefreshPropertySourceLoader.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.nacos.sys.env;
+
+import com.alibaba.nacos.api.exception.NacosException;
+import com.alibaba.nacos.common.JustForTest;
+import com.alibaba.nacos.sys.file.FileChangeEvent;
+import com.alibaba.nacos.sys.file.FileWatcher;
+import com.alibaba.nacos.sys.file.WatchFileCenter;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.boot.env.OriginTrackedMapPropertySource;
+import org.springframework.boot.env.PropertySourceLoader;
+import org.springframework.core.env.PropertySource;
+import org.springframework.core.io.Resource;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+/**
+ * Support for configuring automatic refresh and loading into the Environment.
+ *
+ * @author liaochuntao
+ */
+public class NacosAutoRefreshPropertySourceLoader implements PropertySourceLoader {
+
+ private final Map properties = new ConcurrentHashMap<>(16);
+
+ private Resource holder = null;
+
+ @Override
+ public String[] getFileExtensions() {
+ return new String[] {"properties"};
+ }
+
+ @Override
+ public List> load(String name, Resource resource) throws IOException {
+ holder = resource;
+ Map tmp = loadProperties(resource);
+ properties.putAll(tmp);
+
+ try {
+ WatchFileCenter.registerWatcher(ApplicationUtils.getConfFilePath(), new FileWatcher() {
+ @Override
+ public void onChange(FileChangeEvent event) {
+ try {
+ Map tmp1 = loadProperties(holder);
+ properties.putAll(tmp1);
+ } catch (IOException ignore) {
+
+ }
+ }
+
+ @Override
+ public boolean interest(String context) {
+ return StringUtils.contains(context, "application.properties");
+ }
+ });
+ } catch (NacosException ignore) {
+
+ }
+
+ if (properties.isEmpty()) {
+ return Collections.emptyList();
+ }
+ return Collections.singletonList(new OriginTrackedMapPropertySource("nacos_application_conf", properties));
+ }
+
+ private Map loadProperties(Resource resource) throws IOException {
+ return new OriginTrackedPropertiesLoader(resource).load();
+ }
+
+ @JustForTest
+ protected Map getProperties() {
+ return properties;
+ }
+}
diff --git a/core/src/main/java/com/alibaba/nacos/core/env/NacosDefaultPropertySourceEnvironmentPostProcessor.java b/sys/src/main/java/com/alibaba/nacos/sys/env/NacosDefaultPropertySourceEnvironmentPostProcessor.java
similarity index 94%
rename from core/src/main/java/com/alibaba/nacos/core/env/NacosDefaultPropertySourceEnvironmentPostProcessor.java
rename to sys/src/main/java/com/alibaba/nacos/sys/env/NacosDefaultPropertySourceEnvironmentPostProcessor.java
index 026431ed614..ce9d156ef2c 100644
--- a/core/src/main/java/com/alibaba/nacos/core/env/NacosDefaultPropertySourceEnvironmentPostProcessor.java
+++ b/sys/src/main/java/com/alibaba/nacos/sys/env/NacosDefaultPropertySourceEnvironmentPostProcessor.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.nacos.core.env;
+package com.alibaba.nacos.sys.env;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.env.EnvironmentPostProcessor;
@@ -34,8 +34,6 @@
import java.io.IOException;
-import static org.springframework.core.io.support.ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX;
-
/**
* A lowest precedence {@link EnvironmentPostProcessor} implementation to append Nacos default {@link PropertySource}
* with lowest order in {@link Environment}.
@@ -43,6 +41,7 @@
* @author Mercy
* @since 0.2.2
*/
+@Deprecated
public class NacosDefaultPropertySourceEnvironmentPostProcessor implements EnvironmentPostProcessor, Ordered {
/**
@@ -56,7 +55,7 @@ public class NacosDefaultPropertySourceEnvironmentPostProcessor implements Envir
* @see ResourcePatternResolver#CLASSPATH_ALL_URL_PREFIX
*/
public static final String RESOURCE_LOCATION_PATTERN =
- CLASSPATH_ALL_URL_PREFIX + "META-INF/nacos-default.properties";
+ ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX + "META-INF/nacos-default.properties";
private static final String FILE_ENCODING = "UTF-8";
@@ -114,6 +113,6 @@ private void appendPropertySource(CompositePropertySource propertySource, Resour
@Override
public int getOrder() {
- return LOWEST_PRECEDENCE;
+ return Ordered.LOWEST_PRECEDENCE;
}
}
diff --git a/sys/src/main/java/com/alibaba/nacos/sys/env/OriginTrackedPropertiesLoader.java b/sys/src/main/java/com/alibaba/nacos/sys/env/OriginTrackedPropertiesLoader.java
new file mode 100644
index 00000000000..47e77e1b993
--- /dev/null
+++ b/sys/src/main/java/com/alibaba/nacos/sys/env/OriginTrackedPropertiesLoader.java
@@ -0,0 +1,259 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.nacos.sys.env;
+
+import org.springframework.boot.origin.Origin;
+import org.springframework.boot.origin.OriginTrackedValue;
+import org.springframework.boot.origin.TextResourceOrigin;
+import org.springframework.core.io.Resource;
+import org.springframework.util.Assert;
+
+import java.io.Closeable;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.LineNumberReader;
+import java.nio.charset.StandardCharsets;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * copy from springboot to load properties file.
+ *
+ * @author liaochuntao
+ */
+@SuppressWarnings("PMD.UndefineMagicConstantRule")
+public class OriginTrackedPropertiesLoader {
+
+ private final Resource resource;
+
+ /**
+ * Create a new {@link OriginTrackedPropertiesLoader} instance.
+ *
+ * @param resource the resource of the {@code .properties} data
+ */
+ OriginTrackedPropertiesLoader(Resource resource) {
+ Assert.notNull(resource, "Resource must not be null");
+ this.resource = resource;
+ }
+
+ /**
+ * Load {@code .properties} data and return a map of {@code String} -> {@link OriginTrackedValue}.
+ *
+ * @return the loaded properties
+ * @throws IOException on read error
+ */
+ public Map load() throws IOException {
+ return load(true);
+ }
+
+ /**
+ * Load {@code .properties} data and return a map of {@code String} -> {@link OriginTrackedValue}.
+ *
+ * @param expandLists if list {@code name[]=a,b,c} shortcuts should be expanded
+ * @return the loaded properties
+ * @throws IOException on read error
+ */
+ public Map load(boolean expandLists) throws IOException {
+ try (OriginTrackedPropertiesLoader.CharacterReader reader = new CharacterReader(this.resource)) {
+ Map result = new LinkedHashMap<>();
+ StringBuilder buffer = new StringBuilder();
+ while (reader.read()) {
+ String key = loadKey(buffer, reader).trim();
+ if (expandLists && key.endsWith("[]")) {
+ key = key.substring(0, key.length() - 2);
+ int index = 0;
+ do {
+ OriginTrackedValue value = loadValue(buffer, reader, true);
+ put(result, key + "[" + (index++) + "]", value);
+ if (!reader.isEndOfLine()) {
+ reader.read();
+ }
+ } while (!reader.isEndOfLine());
+ } else {
+ OriginTrackedValue value = loadValue(buffer, reader, false);
+ put(result, key, value);
+ }
+ }
+ return result;
+ }
+ }
+
+ private void put(Map result, String key, OriginTrackedValue value) {
+ if (!key.isEmpty()) {
+ result.put(key, value);
+ }
+ }
+
+ private String loadKey(StringBuilder buffer, OriginTrackedPropertiesLoader.CharacterReader reader)
+ throws IOException {
+ buffer.setLength(0);
+ boolean previousWhitespace = false;
+ while (!reader.isEndOfLine()) {
+ if (reader.isPropertyDelimiter()) {
+ reader.read();
+ return buffer.toString();
+ }
+ if (!reader.isWhiteSpace() && previousWhitespace) {
+ return buffer.toString();
+ }
+ previousWhitespace = reader.isWhiteSpace();
+ buffer.append(reader.getCharacter());
+ reader.read();
+ }
+ return buffer.toString();
+ }
+
+ private OriginTrackedValue loadValue(StringBuilder buffer, OriginTrackedPropertiesLoader.CharacterReader reader,
+ boolean splitLists) throws IOException {
+ buffer.setLength(0);
+ while (reader.isWhiteSpace() && !reader.isEndOfLine()) {
+ reader.read();
+ }
+ TextResourceOrigin.Location location = reader.getLocation();
+ while (!reader.isEndOfLine() && !(splitLists && reader.isListDelimiter())) {
+ buffer.append(reader.getCharacter());
+ reader.read();
+ }
+ Origin origin = new TextResourceOrigin(this.resource, location);
+ return OriginTrackedValue.of(buffer.toString(), origin);
+ }
+
+ /**
+ * Reads characters from the source resource, taking care of skipping comments, handling multi-line values and
+ * tracking {@code '\'} escapes.
+ */
+ private static class CharacterReader implements Closeable {
+
+ private final String[] escapes = {"trnf", "\t\r\n\f"};
+
+ private final LineNumberReader reader;
+
+ private int columnNumber = -1;
+
+ private boolean escaped;
+
+ private int character;
+
+ CharacterReader(Resource resource) throws IOException {
+ this.reader = new LineNumberReader(
+ new InputStreamReader(resource.getInputStream(), StandardCharsets.ISO_8859_1));
+ }
+
+ @Override
+ public void close() throws IOException {
+ this.reader.close();
+ }
+
+ public boolean read() throws IOException {
+ return read(false);
+ }
+
+ public boolean read(boolean wrappedLine) throws IOException {
+ this.escaped = false;
+ this.character = this.reader.read();
+ this.columnNumber++;
+ if (this.columnNumber == 0) {
+ skipLeadingWhitespace();
+ if (!wrappedLine) {
+ skipComment();
+ }
+ }
+ if (this.character == '\\') {
+ this.escaped = true;
+ readEscaped();
+ } else if (this.character == '\n') {
+ this.columnNumber = -1;
+ }
+ return !isEndOfFile();
+ }
+
+ private void skipLeadingWhitespace() throws IOException {
+ while (isWhiteSpace()) {
+ this.character = this.reader.read();
+ this.columnNumber++;
+ }
+ }
+
+ private void skipComment() throws IOException {
+ if (this.character == '#' || this.character == '!') {
+ while (this.character != '\n' && this.character != -1) {
+ this.character = this.reader.read();
+ }
+ this.columnNumber = -1;
+ read();
+ }
+ }
+
+ private void readEscaped() throws IOException {
+ this.character = this.reader.read();
+ int escapeIndex = escapes[0].indexOf(this.character);
+ if (escapeIndex != -1) {
+ this.character = escapes[1].charAt(escapeIndex);
+ } else if (this.character == '\n') {
+ this.columnNumber = -1;
+ read(true);
+ } else if (this.character == 'u') {
+ readUnicode();
+ }
+ }
+
+ private void readUnicode() throws IOException {
+ this.character = 0;
+ for (int i = 0; i < 4; i++) {
+ int digit = this.reader.read();
+ if (digit >= '0' && digit <= '9') {
+ this.character = (this.character << 4) + digit - '0';
+ } else if (digit >= 'a' && digit <= 'f') {
+ this.character = (this.character << 4) + digit - 'a' + 10;
+ } else if (digit >= 'A' && digit <= 'F') {
+ this.character = (this.character << 4) + digit - 'A' + 10;
+ } else {
+ throw new IllegalStateException("Malformed \\uxxxx encoding.");
+ }
+ }
+ }
+
+ public boolean isWhiteSpace() {
+ return !this.escaped && (this.character == ' ' || this.character == '\t' || this.character == '\f');
+ }
+
+ public boolean isEndOfFile() {
+ return this.character == -1;
+ }
+
+ public boolean isEndOfLine() {
+ return this.character == -1 || (!this.escaped && this.character == '\n');
+ }
+
+ public boolean isListDelimiter() {
+ return !this.escaped && this.character == ',';
+ }
+
+ public boolean isPropertyDelimiter() {
+ return !this.escaped && (this.character == '=' || this.character == ':');
+ }
+
+ public char getCharacter() {
+ return (char) this.character;
+ }
+
+ public TextResourceOrigin.Location getLocation() {
+ return new TextResourceOrigin.Location(this.reader.getLineNumber(), this.columnNumber);
+ }
+
+ }
+}
diff --git a/core/src/main/java/com/alibaba/nacos/core/file/FileChangeEvent.java b/sys/src/main/java/com/alibaba/nacos/sys/file/FileChangeEvent.java
similarity index 98%
rename from core/src/main/java/com/alibaba/nacos/core/file/FileChangeEvent.java
rename to sys/src/main/java/com/alibaba/nacos/sys/file/FileChangeEvent.java
index 3cdabf500bd..e7f62f37e74 100644
--- a/core/src/main/java/com/alibaba/nacos/core/file/FileChangeEvent.java
+++ b/sys/src/main/java/com/alibaba/nacos/sys/file/FileChangeEvent.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.nacos.core.file;
+package com.alibaba.nacos.sys.file;
import java.io.Serializable;
diff --git a/core/src/main/java/com/alibaba/nacos/core/file/FileWatcher.java b/sys/src/main/java/com/alibaba/nacos/sys/file/FileWatcher.java
similarity index 97%
rename from core/src/main/java/com/alibaba/nacos/core/file/FileWatcher.java
rename to sys/src/main/java/com/alibaba/nacos/sys/file/FileWatcher.java
index b51b4526c8c..465a4984fb4 100644
--- a/core/src/main/java/com/alibaba/nacos/core/file/FileWatcher.java
+++ b/sys/src/main/java/com/alibaba/nacos/sys/file/FileWatcher.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.nacos.core.file;
+package com.alibaba.nacos.sys.file;
import java.nio.file.WatchEvent;
import java.util.concurrent.Executor;
diff --git a/core/src/main/java/com/alibaba/nacos/core/file/WatchFileCenter.java b/sys/src/main/java/com/alibaba/nacos/sys/file/WatchFileCenter.java
similarity index 99%
rename from core/src/main/java/com/alibaba/nacos/core/file/WatchFileCenter.java
rename to sys/src/main/java/com/alibaba/nacos/sys/file/WatchFileCenter.java
index 97849bb91c5..7d6b1de3de2 100644
--- a/core/src/main/java/com/alibaba/nacos/core/file/WatchFileCenter.java
+++ b/sys/src/main/java/com/alibaba/nacos/sys/file/WatchFileCenter.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.nacos.core.file;
+package com.alibaba.nacos.sys.file;
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.common.executor.ExecutorFactory;
@@ -176,7 +176,7 @@ public WatchDirJob(String paths) throws NacosException {
}
this.callBackExecutor = ExecutorFactory
- .newSingleExecutorService(new NameThreadFactory("com.alibaba.nacos.core.file.watch-" + paths));
+ .newSingleExecutorService(new NameThreadFactory("com.alibaba.nacos.sys.file.watch-" + paths));
try {
WatchService service = FILE_SYSTEM.newWatchService();
diff --git a/core/src/main/java/com/alibaba/nacos/core/utils/ApplicationUtils.java b/sys/src/main/java/com/alibaba/nacos/sys/utils/ApplicationUtils.java
similarity index 94%
rename from core/src/main/java/com/alibaba/nacos/core/utils/ApplicationUtils.java
rename to sys/src/main/java/com/alibaba/nacos/sys/utils/ApplicationUtils.java
index 7b8004570e4..9b744b6697f 100644
--- a/core/src/main/java/com/alibaba/nacos/core/utils/ApplicationUtils.java
+++ b/sys/src/main/java/com/alibaba/nacos/sys/utils/ApplicationUtils.java
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-package com.alibaba.nacos.core.utils;
+package com.alibaba.nacos.sys.utils;
import com.alibaba.nacos.common.JustForTest;
import com.alibaba.nacos.common.utils.IoUtils;
import com.alibaba.nacos.common.utils.StringUtils;
+import com.alibaba.nacos.sys.env.Constants;
import com.sun.management.OperatingSystemMXBean;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
@@ -53,9 +54,6 @@
import java.util.Objects;
import java.util.function.Consumer;
-import static com.alibaba.nacos.core.utils.Constants.FUNCTION_MODE_PROPERTY_NAME;
-import static com.alibaba.nacos.core.utils.Constants.STANDALONE_MODE_PROPERTY_NAME;
-
/**
* Nacos global tool class.
*
@@ -91,6 +89,9 @@ public class ApplicationUtils implements ApplicationContextInitializer getPropertyList(String key) {
+ List valueList = new ArrayList<>();
+
+ for (int i = 0; i < Integer.MAX_VALUE; i++) {
+ String value = environment.getProperty(key + "[" + i + "]");
+ if (org.apache.commons.lang3.StringUtils.isBlank(value)) {
+ break;
+ }
+
+ valueList.add(value);
+ }
+
+ return valueList;
+ }
+
public static String getLocalAddress() {
if (StringUtils.isBlank(localAddress)) {
localAddress = InetUtils.getSelfIp() + ":" + getPort();
@@ -378,7 +394,7 @@ public static void setIsStandalone(Boolean isStandalone) {
*/
public static boolean getStandaloneMode() {
if (Objects.isNull(isStandalone)) {
- isStandalone = Boolean.getBoolean(STANDALONE_MODE_PROPERTY_NAME);
+ isStandalone = Boolean.getBoolean(Constants.STANDALONE_MODE_PROPERTY_NAME);
}
return isStandalone;
}
@@ -388,7 +404,7 @@ public static boolean getStandaloneMode() {
*/
public static String getFunctionMode() {
if (StringUtils.isEmpty(functionModeType)) {
- functionModeType = System.getProperty(FUNCTION_MODE_PROPERTY_NAME);
+ functionModeType = System.getProperty(Constants.FUNCTION_MODE_PROPERTY_NAME);
}
return functionModeType;
}
@@ -446,7 +462,15 @@ public static float getMem() {
}
public static String getConfFilePath() {
- return Paths.get(getNacosHome(), "conf").toString();
+ if (StringUtils.isNotBlank(ApplicationUtils.confPath)) {
+ return ApplicationUtils.confPath;
+ }
+ ApplicationUtils.confPath = Paths.get(getNacosHome(), "conf").toString();
+ return confPath;
+ }
+
+ public static void setConfFilePath(final String confPath) {
+ ApplicationUtils.confPath = confPath;
}
public static String getClusterConfFilePath() {
diff --git a/core/src/main/java/com/alibaba/nacos/core/utils/DiskUtils.java b/sys/src/main/java/com/alibaba/nacos/sys/utils/DiskUtils.java
similarity index 99%
rename from core/src/main/java/com/alibaba/nacos/core/utils/DiskUtils.java
rename to sys/src/main/java/com/alibaba/nacos/sys/utils/DiskUtils.java
index 5a7c4b2550b..42a8b38d7e4 100644
--- a/core/src/main/java/com/alibaba/nacos/core/utils/DiskUtils.java
+++ b/sys/src/main/java/com/alibaba/nacos/sys/utils/DiskUtils.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.nacos.core.utils;
+package com.alibaba.nacos.sys.utils;
import com.alibaba.nacos.common.utils.ByteUtils;
import com.alibaba.nacos.common.utils.Objects;
diff --git a/core/src/main/java/com/alibaba/nacos/core/utils/InetUtils.java b/sys/src/main/java/com/alibaba/nacos/sys/utils/InetUtils.java
similarity index 64%
rename from core/src/main/java/com/alibaba/nacos/core/utils/InetUtils.java
rename to sys/src/main/java/com/alibaba/nacos/sys/utils/InetUtils.java
index e9241e825f0..93f6dc36deb 100644
--- a/core/src/main/java/com/alibaba/nacos/core/utils/InetUtils.java
+++ b/sys/src/main/java/com/alibaba/nacos/sys/utils/InetUtils.java
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-package com.alibaba.nacos.core.utils;
+package com.alibaba.nacos.sys.utils;
import com.alibaba.nacos.common.notify.NotifyCenter;
import com.alibaba.nacos.common.notify.SlowEvent;
+import com.alibaba.nacos.sys.env.Constants;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -34,13 +35,11 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import static com.alibaba.nacos.core.utils.Constants.IGNORED_INTERFACES;
-import static com.alibaba.nacos.core.utils.Constants.IP_ADDRESS;
-import static com.alibaba.nacos.core.utils.Constants.NACOS_SERVER_IP;
-import static com.alibaba.nacos.core.utils.Constants.PREFERRED_NETWORKS;
-import static com.alibaba.nacos.core.utils.Constants.PREFER_HOSTNAME_OVER_IP;
-import static com.alibaba.nacos.core.utils.Constants.SYSTEM_PREFER_HOSTNAME_OVER_IP;
-import static com.alibaba.nacos.core.utils.Constants.USE_ONLY_SITE_INTERFACES;
+import static com.alibaba.nacos.sys.env.Constants.IP_ADDRESS;
+import static com.alibaba.nacos.sys.env.Constants.NACOS_SERVER_IP;
+import static com.alibaba.nacos.sys.env.Constants.PREFER_HOSTNAME_OVER_IP;
+import static com.alibaba.nacos.sys.env.Constants.SYSTEM_PREFER_HOSTNAME_OVER_IP;
+import static com.alibaba.nacos.sys.env.Constants.USE_ONLY_SITE_INTERFACES;
/**
* Network card operation tool class.
@@ -63,75 +62,71 @@ public class InetUtils {
private static boolean preferHostnameOverIp = false;
- private static List preferredNetworks = new ArrayList();
+ private static final List PREFERRED_NETWORKS = new ArrayList();
- private static List ignoredInterfaces = new ArrayList();
+ private static final List IGNORED_INTERFACES = new ArrayList();
static {
NotifyCenter.registerToSharePublisher(IPChangeEvent.class);
- useOnlySiteLocalInterface = Boolean.parseBoolean(PropertyUtil.getProperty(USE_ONLY_SITE_INTERFACES));
+ useOnlySiteLocalInterface = Boolean.parseBoolean(ApplicationUtils.getProperty(USE_ONLY_SITE_INTERFACES));
- List networks = PropertyUtil.getPropertyList(PREFERRED_NETWORKS);
- preferredNetworks.addAll(networks);
+ List networks = ApplicationUtils.getPropertyList(Constants.PREFERRED_NETWORKS);
+ PREFERRED_NETWORKS.addAll(networks);
- List interfaces = PropertyUtil.getPropertyList(IGNORED_INTERFACES);
- ignoredInterfaces.addAll(interfaces);
+ List interfaces = ApplicationUtils.getPropertyList(Constants.IGNORED_INTERFACES);
+ IGNORED_INTERFACES.addAll(interfaces);
final long delayMs = Long.getLong("nacos.core.inet.auto-refresh", 30_000L);
Runnable ipAutoRefresh = new Runnable() {
@Override
public void run() {
- try {
- String nacosIp = System.getProperty(NACOS_SERVER_IP);
- if (StringUtils.isBlank(nacosIp)) {
- nacosIp = PropertyUtil.getProperty(IP_ADDRESS);
- }
+ String nacosIp = System.getProperty(NACOS_SERVER_IP);
+ if (StringUtils.isBlank(nacosIp)) {
+ nacosIp = ApplicationUtils.getProperty(IP_ADDRESS);
+ }
+
+ if (!StringUtils.isBlank(nacosIp) && !isIP(nacosIp)) {
+ throw new RuntimeException("nacos address " + nacosIp + " is not ip");
+ }
+ String tmpSelfIp = nacosIp;
+ if (StringUtils.isBlank(tmpSelfIp)) {
+ preferHostnameOverIp = Boolean.getBoolean(SYSTEM_PREFER_HOSTNAME_OVER_IP);
- if (!StringUtils.isBlank(nacosIp) && !isIP(nacosIp)) {
- throw new RuntimeException("nacos address " + nacosIp + " is not ip");
+ if (!preferHostnameOverIp) {
+ preferHostnameOverIp = Boolean
+ .parseBoolean(ApplicationUtils.getProperty(PREFER_HOSTNAME_OVER_IP));
}
- String tmpSelfIp = nacosIp;
- if (StringUtils.isBlank(tmpSelfIp)) {
- preferHostnameOverIp = Boolean.getBoolean(SYSTEM_PREFER_HOSTNAME_OVER_IP);
-
- if (!preferHostnameOverIp) {
- preferHostnameOverIp = Boolean
- .parseBoolean(PropertyUtil.getProperty(PREFER_HOSTNAME_OVER_IP));
- }
-
- if (preferHostnameOverIp) {
- InetAddress inetAddress;
- try {
- inetAddress = InetAddress.getLocalHost();
- if (inetAddress.getHostName().equals(inetAddress.getCanonicalHostName())) {
- tmpSelfIp = inetAddress.getHostName();
- } else {
- tmpSelfIp = inetAddress.getCanonicalHostName();
- }
- } catch (UnknownHostException ignore) {
- LOG.warn("Unable to retrieve localhost");
+
+ if (preferHostnameOverIp) {
+ InetAddress inetAddress;
+ try {
+ inetAddress = InetAddress.getLocalHost();
+ if (inetAddress.getHostName().equals(inetAddress.getCanonicalHostName())) {
+ tmpSelfIp = inetAddress.getHostName();
+ } else {
+ tmpSelfIp = inetAddress.getCanonicalHostName();
}
- } else {
- tmpSelfIp = Objects.requireNonNull(findFirstNonLoopbackAddress()).getHostAddress();
+ } catch (UnknownHostException ignore) {
+ LOG.warn("Unable to retrieve localhost");
}
+ } else {
+ tmpSelfIp = Objects.requireNonNull(findFirstNonLoopbackAddress()).getHostAddress();
}
-
- if (!Objects.equals(selfIp, tmpSelfIp) && Objects.nonNull(selfIp)) {
- IPChangeEvent event = new IPChangeEvent();
- event.setOldIp(selfIp);
- event.setNewIp(tmpSelfIp);
- NotifyCenter.publishEvent(event);
- }
- selfIp = tmpSelfIp;
- } finally {
- GlobalExecutor.scheduleByCommon(this, delayMs);
}
+
+ if (!Objects.equals(selfIp, tmpSelfIp) && Objects.nonNull(selfIp)) {
+ IPChangeEvent event = new IPChangeEvent();
+ event.setOldIp(selfIp);
+ event.setNewIp(tmpSelfIp);
+ NotifyCenter.publishEvent(event);
+ }
+ selfIp = tmpSelfIp;
}
};
- GlobalExecutor.runWithoutThread(ipAutoRefresh);
+ ipAutoRefresh.run();
}
public static String getSelfIp() {
@@ -196,10 +191,10 @@ private static boolean isPreferredAddress(InetAddress address) {
}
return siteLocalAddress;
}
- if (preferredNetworks.isEmpty()) {
+ if (PREFERRED_NETWORKS.isEmpty()) {
return true;
}
- for (String regex : preferredNetworks) {
+ for (String regex : PREFERRED_NETWORKS) {
final String hostAddress = address.getHostAddress();
if (hostAddress.matches(regex) || hostAddress.startsWith(regex)) {
return true;
@@ -210,7 +205,7 @@ private static boolean isPreferredAddress(InetAddress address) {
}
private static boolean ignoreInterface(String interfaceName) {
- for (String regex : ignoredInterfaces) {
+ for (String regex : IGNORED_INTERFACES) {
if (interfaceName.matches(regex)) {
LOG.debug("Ignoring interface: " + interfaceName);
return true;
diff --git a/core/src/main/resources/META-INF/nacos-default.properties b/sys/src/main/resources/META-INF/nacos-default.properties
similarity index 85%
rename from core/src/main/resources/META-INF/nacos-default.properties
rename to sys/src/main/resources/META-INF/nacos-default.properties
index 0eda3de14d1..6e081a98e80 100644
--- a/core/src/main/resources/META-INF/nacos-default.properties
+++ b/sys/src/main/resources/META-INF/nacos-default.properties
@@ -32,5 +32,5 @@ spring.messages.encoding=UTF-8
## Exclude Spring Boot Auto-Configuration class(es)
spring.autoconfigure.exclude=\
-org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
-org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
+ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\
+ org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration
\ No newline at end of file
diff --git a/sys/src/main/resources/META-INF/spring.factories b/sys/src/main/resources/META-INF/spring.factories
new file mode 100644
index 00000000000..71a4ccbfced
--- /dev/null
+++ b/sys/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,9 @@
+# PropertySource Loaders
+org.springframework.boot.env.PropertySourceLoader=\
+ com.alibaba.nacos.sys.env.NacosAutoRefreshPropertySourceLoader
+# EnvironmentPostProcessor
+org.springframework.boot.env.EnvironmentPostProcessor=\
+com.alibaba.nacos.sys.env.NacosDefaultPropertySourceEnvironmentPostProcessor
+# ApplicationContextInitializer
+org.springframework.context.ApplicationContextInitializer=\
+ com.alibaba.nacos.sys.utils.ApplicationUtils
\ No newline at end of file
diff --git a/sys/src/test/java/com/alibaba/nacos/sys/env/NacosAutoRefreshPropertySourceLoaderTest.java b/sys/src/test/java/com/alibaba/nacos/sys/env/NacosAutoRefreshPropertySourceLoaderTest.java
new file mode 100644
index 00000000000..e41c7a1fa54
--- /dev/null
+++ b/sys/src/test/java/com/alibaba/nacos/sys/env/NacosAutoRefreshPropertySourceLoaderTest.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright 1999-2018 Alibaba Group Holding Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.alibaba.nacos.sys.env;
+
+import com.alibaba.nacos.api.exception.NacosException;
+import com.alibaba.nacos.common.utils.ByteUtils;
+import com.alibaba.nacos.common.utils.ThreadUtils;
+import com.alibaba.nacos.sys.file.FileChangeEvent;
+import com.alibaba.nacos.sys.file.FileWatcher;
+import com.alibaba.nacos.sys.file.WatchFileCenter;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.core.env.ConfigurableEnvironment;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.io.File;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.concurrent.CountDownLatch;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = NacosAutoRefreshPropertySourceLoaderTest.class, webEnvironment = SpringBootTest.WebEnvironment.NONE)
+public class NacosAutoRefreshPropertySourceLoaderTest {
+
+ @Autowired
+ private ConfigurableEnvironment environment;
+
+ private static String oldConfPath = "";
+
+ @BeforeClass
+ public static void before() throws URISyntaxException {
+ oldConfPath = ApplicationUtils.getConfFilePath();
+ ApplicationUtils.setConfFilePath(new File(ClassLoader.getSystemResource("application.properties").toURI()).getParent());
+ }
+
+ @AfterClass
+ public static void after() {
+ ApplicationUtils.setConfFilePath(oldConfPath);
+ }
+
+ @Test
+ public void testConfigFileAutoRefresh() throws URISyntaxException, InterruptedException, NacosException {
+ final URL url = ClassLoader.getSystemResource("application.properties");
+ ApplicationUtils.setContextPath(url.getPath());
+ final String val1 = environment.getProperty("name");
+ Assert.assertEquals("test-1", val1);
+ final File file = new File(url.toURI());
+ final String newKey = "nacos.config.refresh-" + System.currentTimeMillis();
+ final String newVal = System.currentTimeMillis() + "-lessspring";
+ DiskUtils.writeFile(file, ByteUtils.toBytes("\n" + newKey + "=" + newVal), true);
+ CountDownLatch latch = new CountDownLatch(1);
+ WatchFileCenter.registerWatcher(ApplicationUtils.getConfFilePath(), new FileWatcher() {
+ @Override
+ public void onChange(FileChangeEvent event) {
+ latch.countDown();
+ }
+
+ @Override
+ public boolean interest(String context) {
+ return StringUtils.contains(context, "application.properties");
+ }
+ });
+ latch.await();
+ ThreadUtils.sleep(10_000);
+ final String val2 = environment.getProperty(newKey);
+ Assert.assertEquals(newVal, val2);
+ }
+
+}
\ No newline at end of file
diff --git a/core/src/test/java/com/alibaba/nacos/core/env/NacosDefaultPropertySourceEnvironmentPostProcessorTest.java b/sys/src/test/java/com/alibaba/nacos/sys/env/NacosDefaultPropertySourceEnvironmentPostProcessorTest.java
similarity index 93%
rename from core/src/test/java/com/alibaba/nacos/core/env/NacosDefaultPropertySourceEnvironmentPostProcessorTest.java
rename to sys/src/test/java/com/alibaba/nacos/sys/env/NacosDefaultPropertySourceEnvironmentPostProcessorTest.java
index ef984624044..2223cf864cc 100644
--- a/core/src/test/java/com/alibaba/nacos/core/env/NacosDefaultPropertySourceEnvironmentPostProcessorTest.java
+++ b/sys/src/test/java/com/alibaba/nacos/sys/env/NacosDefaultPropertySourceEnvironmentPostProcessorTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.alibaba.nacos.core.env;
+package com.alibaba.nacos.sys.env;
import org.junit.Assert;
import org.junit.Test;
@@ -29,8 +29,8 @@
import java.util.HashSet;
-import static com.alibaba.nacos.core.env.NacosDefaultPropertySourceEnvironmentPostProcessor.PROPERTY_SOURCE_NAME;
-import static com.alibaba.nacos.core.env.NacosDefaultPropertySourceEnvironmentPostProcessor.RESOURCE_LOCATION_PATTERN;
+import static com.alibaba.nacos.sys.env.NacosDefaultPropertySourceEnvironmentPostProcessor.PROPERTY_SOURCE_NAME;
+import static com.alibaba.nacos.sys.env.NacosDefaultPropertySourceEnvironmentPostProcessor.RESOURCE_LOCATION_PATTERN;
import static java.util.Arrays.asList;
/**
diff --git a/sys/src/test/resources/application.properties b/sys/src/test/resources/application.properties
new file mode 100644
index 00000000000..aaba4fabc49
--- /dev/null
+++ b/sys/src/test/resources/application.properties
@@ -0,0 +1,17 @@
+#
+# Copyright 1999-2018 Alibaba Group Holding Ltd.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name=test-1
\ No newline at end of file
diff --git a/test/src/test/java/com/alibaba/nacos/test/common/WatchFileCenter_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/common/WatchFileCenter_ITCase.java
index 89be3bb7d28..909fbe64e59 100644
--- a/test/src/test/java/com/alibaba/nacos/test/common/WatchFileCenter_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/common/WatchFileCenter_ITCase.java
@@ -16,12 +16,12 @@
package com.alibaba.nacos.test.common;
-import com.alibaba.nacos.core.file.FileChangeEvent;
-import com.alibaba.nacos.core.file.FileWatcher;
-import com.alibaba.nacos.core.file.WatchFileCenter;
+import com.alibaba.nacos.sys.file.FileChangeEvent;
+import com.alibaba.nacos.sys.file.FileWatcher;
+import com.alibaba.nacos.sys.file.WatchFileCenter;
import com.alibaba.nacos.common.utils.ByteUtils;
import com.alibaba.nacos.common.utils.ConcurrentHashSet;
-import com.alibaba.nacos.core.utils.DiskUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
import com.alibaba.nacos.common.utils.ThreadUtils;
import org.apache.commons.lang3.StringUtils;
import org.junit.AfterClass;
@@ -45,142 +45,138 @@
* @author liaochuntao
*/
public class WatchFileCenter_ITCase {
-
- static final String path = Paths
- .get(System.getProperty("user.home"), "/watch_file_change_test").toString();
-
- final Object monitor = new Object();
-
- static final Executor executor = Executors.newFixedThreadPool(32);
-
- @BeforeClass
- public static void beforeCls() throws Exception {
- DiskUtils.deleteDirThenMkdir(path);
- }
-
- @AfterClass
- public static void afterCls() throws Exception {
- DiskUtils.deleteDirectory(path);
- }
-
- // The last file change must be notified
-
- @Test
- public void test_high_concurrency_modify() throws Exception {
- AtomicInteger count = new AtomicInteger(0);
- Set set = new ConcurrentHashSet<>();
-
- final String fileName = "test2_file_change";
- final File file = Paths.get(path, fileName).toFile();
-
- func(fileName, file, content -> {
- set.add(content);
- count.incrementAndGet();
- });
-
- ThreadUtils.sleep(5_000L);
- }
-
- @Test
- public void test_modify_file_much() throws Exception {
- final String fileName = "modify_file_much";
- final File file = Paths.get(path, fileName).toFile();
-
- CountDownLatch latch = new CountDownLatch(3);
- AtomicInteger count = new AtomicInteger(0);
-
- WatchFileCenter.registerWatcher(path, new FileWatcher() {
- @Override
- public void onChange(FileChangeEvent event) {
- try {
- System.out.println(event);
- System.out.println(DiskUtils.readFile(file));
- count.incrementAndGet();
- } finally {
- latch.countDown();
- }
- }
-
- @Override
- public boolean interest(String context) {
- return StringUtils.contains(context, fileName);
- }
- });
-
- for (int i = 0; i < 3; i ++) {
- DiskUtils.writeFile(file, ByteUtils.toBytes(("test_modify_file_" + i)), false);
- ThreadUtils.sleep(10_000L);
- }
-
- latch.await(10_000L, TimeUnit.MILLISECONDS);
-
- Assert.assertEquals(3, count.get());
- }
-
- @Test
- public void test_multi_file_modify() throws Exception {
- CountDownLatch latch = new CountDownLatch(10);
- for (int i = 0; i < 10; i++) {
- AtomicInteger count = new AtomicInteger(0);
- Set set = new ConcurrentHashSet<>();
-
- final String fileName = "test2_file_change_" + i;
- final File file = Paths.get(path, fileName).toFile();
-
- executor.execute(() -> {
- try {
- func(fileName, file, content -> {
- set.add(content);
- count.incrementAndGet();
- });
- } catch (Throwable ex) {
- ex.printStackTrace();
- } finally {
- latch.countDown();
- }
- });
- }
- latch.await(10_000L, TimeUnit.MILLISECONDS);
-
- ThreadUtils.sleep(5_000L);
- }
-
- private void func(final String fileName, final File file,
- final Consumer consumer) throws Exception {
- CountDownLatch latch = new CountDownLatch(100);
- DiskUtils.touch(file);
- WatchFileCenter.registerWatcher(path, new FileWatcher() {
- @Override
- public void onChange(FileChangeEvent event) {
- final File file = Paths.get(path, fileName).toFile();
- final String content = DiskUtils.readFile(file);
- consumer.accept(content);
- }
-
- @Override
- public boolean interest(String context) {
- return StringUtils.contains(context, fileName);
- }
- });
-
- final AtomicInteger id = new AtomicInteger(0);
- final AtomicReference finalContent = new AtomicReference<>(null);
- for (int i = 0; i < 100; i++) {
- executor.execute(() -> {
- final String j = fileName + "_" + id.incrementAndGet();
- try {
- final File file1 = Paths.get(path, fileName).toFile();
- synchronized (monitor) {
- finalContent.set(j);
- DiskUtils.writeFile(file1, j.getBytes(StandardCharsets.UTF_8),
- false);
- }
- }
- finally {
- latch.countDown();
- }
- });
- }
- }
-
+
+ static final String path = Paths.get(System.getProperty("user.home"), "/watch_file_change_test").toString();
+
+ final Object monitor = new Object();
+
+ static final Executor executor = Executors.newFixedThreadPool(32);
+
+ @BeforeClass
+ public static void beforeCls() throws Exception {
+ DiskUtils.deleteDirThenMkdir(path);
+ }
+
+ @AfterClass
+ public static void afterCls() throws Exception {
+ DiskUtils.deleteDirectory(path);
+ }
+
+ // The last file change must be notified
+
+ @Test
+ public void test_high_concurrency_modify() throws Exception {
+ AtomicInteger count = new AtomicInteger(0);
+ Set set = new ConcurrentHashSet<>();
+
+ final String fileName = "test2_file_change";
+ final File file = Paths.get(path, fileName).toFile();
+
+ func(fileName, file, content -> {
+ set.add(content);
+ count.incrementAndGet();
+ });
+
+ ThreadUtils.sleep(5_000L);
+ }
+
+ @Test
+ public void test_modify_file_much() throws Exception {
+ final String fileName = "modify_file_much";
+ final File file = Paths.get(path, fileName).toFile();
+
+ CountDownLatch latch = new CountDownLatch(3);
+ AtomicInteger count = new AtomicInteger(0);
+
+ WatchFileCenter.registerWatcher(path, new FileWatcher() {
+ @Override
+ public void onChange(FileChangeEvent event) {
+ try {
+ System.out.println(event);
+ System.out.println(DiskUtils.readFile(file));
+ count.incrementAndGet();
+ } finally {
+ latch.countDown();
+ }
+ }
+
+ @Override
+ public boolean interest(String context) {
+ return StringUtils.contains(context, fileName);
+ }
+ });
+
+ for (int i = 0; i < 3; i++) {
+ DiskUtils.writeFile(file, ByteUtils.toBytes(("test_modify_file_" + i)), false);
+ ThreadUtils.sleep(10_000L);
+ }
+
+ latch.await(10_000L, TimeUnit.MILLISECONDS);
+
+ Assert.assertEquals(3, count.get());
+ }
+
+ @Test
+ public void test_multi_file_modify() throws Exception {
+ CountDownLatch latch = new CountDownLatch(10);
+ for (int i = 0; i < 10; i++) {
+ AtomicInteger count = new AtomicInteger(0);
+ Set set = new ConcurrentHashSet<>();
+
+ final String fileName = "test2_file_change_" + i;
+ final File file = Paths.get(path, fileName).toFile();
+
+ executor.execute(() -> {
+ try {
+ func(fileName, file, content -> {
+ set.add(content);
+ count.incrementAndGet();
+ });
+ } catch (Throwable ex) {
+ ex.printStackTrace();
+ } finally {
+ latch.countDown();
+ }
+ });
+ }
+ latch.await(10_000L, TimeUnit.MILLISECONDS);
+
+ ThreadUtils.sleep(5_000L);
+ }
+
+ private void func(final String fileName, final File file, final Consumer consumer) throws Exception {
+ CountDownLatch latch = new CountDownLatch(100);
+ DiskUtils.touch(file);
+ WatchFileCenter.registerWatcher(path, new FileWatcher() {
+ @Override
+ public void onChange(FileChangeEvent event) {
+ final File file = Paths.get(path, fileName).toFile();
+ final String content = DiskUtils.readFile(file);
+ consumer.accept(content);
+ }
+
+ @Override
+ public boolean interest(String context) {
+ return StringUtils.contains(context, fileName);
+ }
+ });
+
+ final AtomicInteger id = new AtomicInteger(0);
+ final AtomicReference finalContent = new AtomicReference<>(null);
+ for (int i = 0; i < 100; i++) {
+ executor.execute(() -> {
+ final String j = fileName + "_" + id.incrementAndGet();
+ try {
+ final File file1 = Paths.get(path, fileName).toFile();
+ synchronized (monitor) {
+ finalContent.set(j);
+ DiskUtils.writeFile(file1, j.getBytes(StandardCharsets.UTF_8), false);
+ }
+ } finally {
+ latch.countDown();
+ }
+ });
+ }
+ }
+
}
diff --git a/test/src/test/java/com/alibaba/nacos/test/config/ConfigCleanUtils.java b/test/src/test/java/com/alibaba/nacos/test/config/ConfigCleanUtils.java
index ffc652a4e89..5bb1081a2e7 100644
--- a/test/src/test/java/com/alibaba/nacos/test/config/ConfigCleanUtils.java
+++ b/test/src/test/java/com/alibaba/nacos/test/config/ConfigCleanUtils.java
@@ -17,7 +17,7 @@
package com.alibaba.nacos.test.config;
import com.alibaba.nacos.client.config.impl.LocalConfigInfoProcessor;
-import com.alibaba.nacos.core.utils.DiskUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
import java.io.IOException;
diff --git a/test/src/test/java/com/alibaba/nacos/test/config/ConfigDerbyImport_CITCase.java b/test/src/test/java/com/alibaba/nacos/test/config/ConfigDerbyImport_CITCase.java
index 0f14a13dc15..b3c3a98c109 100644
--- a/test/src/test/java/com/alibaba/nacos/test/config/ConfigDerbyImport_CITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/config/ConfigDerbyImport_CITCase.java
@@ -23,11 +23,8 @@
import com.alibaba.nacos.config.server.model.ConfigInfo;
import com.alibaba.nacos.config.server.service.repository.PersistService;
import com.alibaba.nacos.config.server.service.repository.embedded.DatabaseOperate;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.DiskUtils;
-import org.junit.AfterClass;
+import com.alibaba.nacos.sys.utils.DiskUtils;
import org.junit.Assert;
-import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,7 +33,6 @@
import org.springframework.test.context.junit4.SpringRunner;
import java.io.File;
-import java.nio.file.Paths;
import java.util.concurrent.CompletableFuture;
/**
diff --git a/test/src/test/java/com/alibaba/nacos/test/config/ConfigDerbyRaft_DITCase.java b/test/src/test/java/com/alibaba/nacos/test/config/ConfigDerbyRaft_DITCase.java
index 322494a4a7b..6afce7ee66e 100644
--- a/test/src/test/java/com/alibaba/nacos/test/config/ConfigDerbyRaft_DITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/config/ConfigDerbyRaft_DITCase.java
@@ -32,7 +32,7 @@
import com.alibaba.nacos.core.distributed.id.IdGeneratorManager;
import com.alibaba.nacos.core.distributed.raft.utils.JRaftConstants;
import com.alibaba.nacos.core.utils.GenericType;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import com.alibaba.nacos.test.core.BaseClusterTest;
import org.junit.Assert;
diff --git a/test/src/test/java/com/alibaba/nacos/test/core/BaseClusterTest.java b/test/src/test/java/com/alibaba/nacos/test/core/BaseClusterTest.java
index c1f79663ce2..cf1c2fead83 100644
--- a/test/src/test/java/com/alibaba/nacos/test/core/BaseClusterTest.java
+++ b/test/src/test/java/com/alibaba/nacos/test/core/BaseClusterTest.java
@@ -21,18 +21,17 @@
import com.alibaba.nacos.api.config.ConfigService;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.common.http.HttpClientBeanHolder;
-import com.alibaba.nacos.common.http.NSyncHttpClient;
import com.alibaba.nacos.common.http.client.NacosRestTemplate;
import com.alibaba.nacos.common.notify.Event;
import com.alibaba.nacos.common.notify.NotifyCenter;
import com.alibaba.nacos.common.notify.listener.Subscriber;
-import com.alibaba.nacos.core.utils.DiskUtils;
import com.alibaba.nacos.config.server.model.event.RaftDbErrorEvent;
import com.alibaba.nacos.config.server.service.repository.embedded.DistributedDatabaseOperateImpl;
import com.alibaba.nacos.consistency.cp.CPProtocol;
import com.alibaba.nacos.consistency.cp.MetadataKey;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import com.alibaba.nacos.test.base.HttpClient4Test;
import org.junit.AfterClass;
diff --git a/test/src/test/java/com/alibaba/nacos/test/core/InetUtils_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/core/InetUtils_ITCase.java
index 1b219072b6b..1e912809e5f 100644
--- a/test/src/test/java/com/alibaba/nacos/test/core/InetUtils_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/core/InetUtils_ITCase.java
@@ -19,7 +19,7 @@
import com.alibaba.nacos.common.notify.Event;
import com.alibaba.nacos.common.notify.NotifyCenter;
import com.alibaba.nacos.common.notify.listener.Subscriber;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import org.junit.Assert;
import org.junit.Test;
@@ -28,7 +28,8 @@
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
-import static com.alibaba.nacos.core.utils.Constants.NACOS_SERVER_IP;
+import static com.alibaba.nacos.sys.env.Constants.NACOS_SERVER_IP;
+
/**
* @author liaochuntao
diff --git a/test/src/test/java/com/alibaba/nacos/test/core/SnowFlowerIdGenerator_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/core/SnowFlowerIdGenerator_ITCase.java
index 002695ecd41..573b7c61cfa 100644
--- a/test/src/test/java/com/alibaba/nacos/test/core/SnowFlowerIdGenerator_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/core/SnowFlowerIdGenerator_ITCase.java
@@ -17,7 +17,7 @@
package com.alibaba.nacos.test.core;
import com.alibaba.nacos.core.distributed.id.SnowFlowerIdGenerator;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.core.env.StandardEnvironment;
diff --git a/test/src/test/java/com/alibaba/nacos/test/core/auth/NamingAuth_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/core/auth/NamingAuth_ITCase.java
index 8c959fbfa4b..707feea32c5 100644
--- a/test/src/test/java/com/alibaba/nacos/test/core/auth/NamingAuth_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/core/auth/NamingAuth_ITCase.java
@@ -21,7 +21,7 @@
import com.alibaba.nacos.api.exception.NacosException;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.apache.http.HttpStatus;
import org.junit.After;
import org.junit.Assert;
diff --git a/test/src/test/java/com/alibaba/nacos/test/core/cluster/MemberLookup_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/core/cluster/MemberLookup_ITCase.java
index 485bd42fae9..033343c9981 100644
--- a/test/src/test/java/com/alibaba/nacos/test/core/cluster/MemberLookup_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/core/cluster/MemberLookup_ITCase.java
@@ -17,7 +17,6 @@
package com.alibaba.nacos.test.core.cluster;
import com.alibaba.nacos.api.exception.NacosException;
-import com.alibaba.nacos.core.utils.DiskUtils;
import com.alibaba.nacos.core.cluster.Member;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
import com.alibaba.nacos.core.cluster.lookup.AddressServerMemberLookup;
@@ -25,8 +24,9 @@
import com.alibaba.nacos.core.cluster.lookup.LookupFactory;
import com.alibaba.nacos.core.cluster.MemberLookup;
import com.alibaba.nacos.core.cluster.lookup.StandaloneMemberLookup;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.InetUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.DiskUtils;
+import com.alibaba.nacos.sys.utils.InetUtils;
import com.alibaba.nacos.test.BaseTest;
import org.apache.commons.lang3.StringUtils;
import org.junit.After;
diff --git a/test/src/test/java/com/alibaba/nacos/test/core/cluster/ServerMemberManager_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/core/cluster/ServerMemberManager_ITCase.java
index 9579c742ef1..2955715690c 100644
--- a/test/src/test/java/com/alibaba/nacos/test/core/cluster/ServerMemberManager_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/core/cluster/ServerMemberManager_ITCase.java
@@ -24,8 +24,8 @@
import com.alibaba.nacos.core.cluster.MemberUtils;
import com.alibaba.nacos.core.cluster.NodeState;
import com.alibaba.nacos.core.cluster.ServerMemberManager;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
-import com.alibaba.nacos.core.utils.Constants;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.env.Constants;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/AutoDeregisterInstance_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/AutoDeregisterInstance_ITCase.java
index 68982265149..5053ee2c5fd 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/AutoDeregisterInstance_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/AutoDeregisterInstance_ITCase.java
@@ -22,7 +22,7 @@
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.alibaba.nacos.client.naming.NacosNamingService;
import com.alibaba.nacos.client.naming.beat.BeatInfo;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/ClientBeat_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/ClientBeat_ITCase.java
index 06e8adea359..6e5cefe02db 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/ClientBeat_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/ClientBeat_ITCase.java
@@ -21,7 +21,7 @@
import com.alibaba.nacos.api.naming.NamingFactory;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.test.base.Params;
import org.apache.commons.lang3.StringUtils;
import org.junit.Assert;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/DeregisterInstance_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/DeregisterInstance_ITCase.java
index cb873b2c804..179c007cccc 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/DeregisterInstance_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/DeregisterInstance_ITCase.java
@@ -19,7 +19,7 @@
import com.alibaba.nacos.api.naming.NamingFactory;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/MultiTenant_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/MultiTenant_ITCase.java
index 418e11b9a7d..1d4178bf8f7 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/MultiTenant_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/MultiTenant_ITCase.java
@@ -26,7 +26,7 @@
import com.alibaba.nacos.api.naming.listener.NamingEvent;
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.alibaba.nacos.api.naming.pojo.ListView;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/NamingMaintainService_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/NamingMaintainService_ITCase.java
index 0ab4df76020..047d40c23fb 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/NamingMaintainService_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/NamingMaintainService_ITCase.java
@@ -27,7 +27,7 @@
import com.alibaba.nacos.api.naming.pojo.Service;
import com.alibaba.nacos.api.selector.ExpressionSelector;
import com.alibaba.nacos.api.selector.NoneSelector;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import com.alibaba.nacos.test.BaseTest;
import org.junit.Assert;
import org.junit.Before;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/RegisterInstance_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/RegisterInstance_ITCase.java
index 0df3dbbc7dd..0227f3a608a 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/RegisterInstance_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/RegisterInstance_ITCase.java
@@ -22,7 +22,7 @@
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.PreservedMetadataKeys;
import com.alibaba.nacos.api.naming.pojo.Instance;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/SelectInstances_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/SelectInstances_ITCase.java
index a55c8afdb67..4b78ef75f42 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/SelectInstances_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/SelectInstances_ITCase.java
@@ -22,7 +22,7 @@
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.alibaba.nacos.api.naming.pojo.ListView;
import com.alibaba.nacos.api.selector.ExpressionSelector;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/SelectOneHealthyInstance_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/SelectOneHealthyInstance_ITCase.java
index f9331e46efd..16104ebf07b 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/SelectOneHealthyInstance_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/SelectOneHealthyInstance_ITCase.java
@@ -19,7 +19,7 @@
import com.alibaba.nacos.api.naming.NamingFactory;
import com.alibaba.nacos.api.naming.NamingService;
import com.alibaba.nacos.api.naming.pojo.Instance;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/ServiceListTest_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/ServiceListTest_ITCase.java
index 31963a4e7b8..4a58b3fed26 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/ServiceListTest_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/ServiceListTest_ITCase.java
@@ -25,7 +25,7 @@
import com.alibaba.nacos.api.naming.pojo.Instance;
import com.alibaba.nacos.api.naming.pojo.ListView;
import com.alibaba.nacos.api.naming.pojo.ServiceInfo;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/SubscribeCluster_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/SubscribeCluster_ITCase.java
index ff1a42f39e3..86c13f8096a 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/SubscribeCluster_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/SubscribeCluster_ITCase.java
@@ -22,7 +22,7 @@
import com.alibaba.nacos.api.naming.listener.EventListener;
import com.alibaba.nacos.api.naming.listener.NamingEvent;
import com.alibaba.nacos.api.naming.pojo.Instance;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
diff --git a/test/src/test/java/com/alibaba/nacos/test/naming/Unsubscribe_ITCase.java b/test/src/test/java/com/alibaba/nacos/test/naming/Unsubscribe_ITCase.java
index 11454bb2a80..a04c200d705 100644
--- a/test/src/test/java/com/alibaba/nacos/test/naming/Unsubscribe_ITCase.java
+++ b/test/src/test/java/com/alibaba/nacos/test/naming/Unsubscribe_ITCase.java
@@ -22,7 +22,7 @@
import com.alibaba.nacos.api.naming.listener.EventListener;
import com.alibaba.nacos.api.naming.listener.NamingEvent;
import com.alibaba.nacos.api.naming.pojo.Instance;
-import com.alibaba.nacos.core.utils.ApplicationUtils;
+import com.alibaba.nacos.sys.utils.ApplicationUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;