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 + 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;