You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2023/05/06 06:59:04 UTC

[kylin] 03/38: KYLIN-5522 fix local debug mode

This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit 2cf578b0fa0c93292597e291f11ccead7c217762
Author: Junqing Cai <ca...@163.com>
AuthorDate: Wed Feb 8 17:56:27 2023 +0800

    KYLIN-5522 fix local debug mode
    
    * use commons-lang instead of commons-lang3
    
    * fix local debug mode
---
 .../kylin/rest/controller/NBasicController.java    |  2 +-
 .../apache/kylin/rest/KylinPrepareEnvListener.java |  2 +-
 .../kylin/rest/aspect/InsensitiveNameAspect.java   |  2 +-
 .../apache/kylin/rest/broadcaster/Broadcaster.java |  2 +-
 .../rest/config/initialize/AclTCRListener.java     |  2 +-
 .../rest/config/initialize/CacheCleanListener.java |  2 +-
 .../rest/config/initialize/MetricsRegistry.java    |  2 +-
 .../initialize/TableSchemaChangeListener.java      |  2 +-
 .../ResourceGroupEntityValidator.java              |  2 +-
 .../ResourceGroupKylinInstanceValidator.java       |  2 +-
 .../ResourceGroupMappingInfoValidator.java         |  2 +-
 .../interceptor/RepeatableRequestBodyFilter.java   |  2 +-
 .../interceptor/ResourceGroupCheckerFilter.java    |  2 +-
 .../apache/kylin/rest/monitor/MonitorReporter.java |  2 +-
 .../org/apache/kylin/rest/request/UserRequest.java |  2 +-
 .../apache/kylin/rest/service/AccessService.java   |  2 +-
 .../kylin/rest/service/AsyncTaskService.java       |  2 +-
 .../apache/kylin/rest/service/BasicService.java    |  2 +-
 .../apache/kylin/rest/service/LdapUserService.java |  2 +-
 .../rest/service/MockQuerySmartSupporter.java}     | 31 ++++++----------------
 .../kylin/rest/service/OpenUserGroupService.java   |  2 +-
 .../apache/kylin/rest/service/ProjectService.java  |  2 +-
 .../apache/kylin/rest/service/SystemService.java   |  2 +-
 .../apache/kylin/rest/service/UserAclService.java  |  2 +-
 .../java/org/apache/kylin/tool/util/ToolUtil.java  |  2 +-
 .../java/org/apache/kylin/common/KylinConfig.java  |  2 +-
 .../org/apache/kylin/common/KylinConfigBase.java   |  2 +-
 .../java/org/apache/kylin/common/KylinVersion.java |  2 +-
 .../java/org/apache/kylin/common/StorageURL.java   |  2 +-
 .../apache/kylin/common/debug/BackdoorToggles.java |  2 +-
 .../kylin/common/persistence/StringEntity.java     |  2 +-
 .../persistence/metadata/JdbcMetadataStore.java    |  2 +-
 .../transaction/AuditLogReplayWorker.java          |  2 +-
 .../kylin/common/util/DaemonThreadFactory.java     |  2 +-
 .../org/apache/kylin/common/util/DateFormat.java   |  2 +-
 .../org/apache/kylin/common/util/EncryptUtil.java  |  2 +-
 .../org/apache/kylin/common/util/HadoopUtil.java   |  2 +-
 .../kylin/common/util/OrderedProperties.java       |  2 +-
 .../org/apache/kylin/common/util/SSHClient.java    |  2 +-
 .../java/org/apache/kylin/common/util/Unsafe.java  |  2 +-
 .../org/apache/kylin/common/util/ZipFileUtils.java |  2 +-
 .../org/apache/kylin/rest/util/PagingUtil.java     |  2 +-
 .../common/util/NLocalFileMetadataTestCase.java    |  2 +-
 .../apache/kylin/engine/spark/ExecutableUtils.java |  2 +-
 .../org/apache/kylin/job/dao/ExecutablePO.java     |  2 +-
 .../apache/kylin/job/engine/JobEngineConfig.java   |  2 +-
 .../kylin/job/execution/AbstractExecutable.java    |  2 +-
 .../job/execution/DefaultExecutableOnModel.java    |  2 +-
 .../kylin/job/execution/ExecutableParams.java      |  2 +-
 .../job/execution/NExecutableManagerTest.java      |  2 +-
 .../job/impl/threadpool/NDefaultSchedulerTest.java |  2 +-
 .../apache/kylin/metadata/acl/AclTCRManager.java   |  2 +-
 .../metadata/cube/cuboid/AggIndexMatcher.java      |  2 +-
 .../kylin/metadata/cube/cuboid/IndexMatcher.java   |  2 +-
 .../metadata/cube/cuboid/KECuboidSchedulerV1.java  |  2 +-
 .../cube/model/NDataLoadingRangeManager.java       |  2 +-
 .../kylin/metadata/cube/model/NDataSegment.java    |  2 +-
 .../cube/model/NDataflowCapabilityChecker.java     |  2 +-
 .../metadata/cube/model/NIndexPlanManager.java     |  2 +-
 .../cube/storage/ProjectStorageInfoCollector.java  |  2 +-
 .../kylin/metadata/datatype/BooleanSerializer.java |  2 +-
 .../apache/kylin/metadata/datatype/DataType.java   |  2 +-
 .../apache/kylin/metadata/epoch/EpochManager.java  |  2 +-
 .../metadata/filter/function/LikeMatchers.java     |  2 +-
 .../insensitive/ModelInsensitiveRequest.java       |  2 +-
 .../insensitive/ProjectInsensitiveRequest.java     |  2 +-
 .../insensitive/UserInsensitiveRequest.java        |  2 +-
 .../kylin/metadata/model/ComputedColumnDesc.java   |  2 +-
 .../kylin/metadata/model/JoinedFlatTable.java      |  2 +-
 .../apache/kylin/metadata/model/MeasureDesc.java   |  2 +-
 .../metadata/model/ModelJoinRelationTypeEnum.java  |  2 +-
 .../kylin/metadata/model/NDataModelManager.java    |  2 +-
 .../metadata/model/NTableMetadataManager.java      |  2 +-
 .../org/apache/kylin/metadata/model/TblColRef.java |  2 +-
 .../metadata/model/alias/ExpressionComparator.java |  2 +-
 .../model/schema/AffectedModelContext.java         |  2 +-
 .../metadata/model/schema/ModelEdgeCollector.java  |  2 +-
 .../kylin/metadata/model/tool/CalciteParser.java   |  2 +-
 .../metadata/query/JdbcQueryHistoryStore.java      |  2 +-
 .../kylin/metadata/realization/SQLDigest.java      |  2 +-
 .../recommendation/candidate/RawRecItemTable.java  |  2 +-
 .../recommendation/entity/CCRecItemV2.java         |  2 +-
 .../metadata/recommendation/ref/OptRecV2.java      |  2 +-
 .../metadata/sourceusage/SourceUsageManager.java   |  2 +-
 .../kylin/metadata/streaming/KafkaConfig.java      |  2 +-
 .../kylin/rest/security/ExternalAclProvider.java   |  2 +-
 .../apache/kylin/rest/security/UserAclManager.java |  2 +-
 .../metadata/epoch/EpochUpdateLockManagerTest.java |  2 +-
 .../apache/kylin/common/metrics/MetricsGroup.java  |  2 +-
 .../common/metrics/MetricsInfluxdbReporter.java    |  2 +-
 .../kylin/rest/controller/BaseController.java      |  2 +-
 .../kylin/rest/controller/JobController.java       |  2 +-
 .../kylin/rest/controller/SegmentController.java   |  2 +-
 .../open/OpenStreamingJobController.java           |  2 +-
 .../rest/controller/v2/SegmentControllerV2.java    |  2 +-
 .../rest/controller/SampleControllerTest.java      |  2 +-
 .../controller/StreamingJobControllerTest.java     |  2 +-
 .../controller/open/OpenSampleControllerTest.java  |  2 +-
 .../open/OpenStreamingJobControllerTest.java       |  2 +-
 .../kylin/rest/response/ExecutableResponse.java    |  2 +-
 .../org/apache/kylin/rest/service/JobService.java  |  2 +-
 .../kylin/rest/service/ModelBuildService.java      |  2 +-
 .../apache/kylin/rest/service/SnapshotService.java |  2 +-
 .../kylin/rest/service/TableSamplingService.java   |  2 +-
 .../apache/kylin/rest/service/JobServiceTest.java  |  2 +-
 .../sdk/datasource/adaptor/DefaultAdaptor.java     |  2 +-
 .../sdk/datasource/framework/JdbcConnector.java    |  2 +-
 .../datasource/framework/conv/ParamNodeParser.java |  2 +-
 .../datasource/framework/conv/SqlConverter.java    |  2 +-
 .../apache/kylin/rest/service/SparkDDLService.java |  2 +-
 .../apache/kylin/rest/service/TableService.java    |  2 +-
 .../rest/config/initialize/JobSyncListener.java    |  2 +-
 .../rest/config/initialize/JobSchedulerTest.java   |  2 +-
 .../java/org/apache/kylin/query/NKapQueryTest.java |  2 +-
 .../rest/controller/NProjectControllerTest.java    |  2 +-
 .../kylin/rest/controller/NModelController.java    |  2 +-
 .../kylin/rest/controller/NProjectController.java  |  2 +-
 .../kylin/rest/controller/NTableController.java    |  4 +--
 .../kylin/rest/controller/NUserController.java     |  2 +-
 .../rest/controller/NUserGroupController.java      |  2 +-
 .../rest/controller/v2/NAccessControllerV2.java    |  2 +-
 .../rest/controller/NTableControllerTest.java      |  2 +-
 .../kylin/rest/controller/NUserControllerTest.java |  2 +-
 .../apache/kylin/rest/model/FuzzyKeySearcher.java  |  2 +-
 .../response/SynchronizedCommentsResponse.java     |  2 +-
 .../kylin/rest/service/AbstractModelService.java   |  2 +-
 .../kylin/rest/service/FusionModelService.java     |  2 +-
 .../kylin/rest/service/IndexPlanService.java       |  2 +-
 .../kylin/rest/service/ModelSemanticHelper.java    |  2 +-
 .../apache/kylin/rest/service/ModelService.java    |  4 +--
 .../org/apache/kylin/rest/util/ModelUtils.java     |  2 +-
 .../apache/kylin/rest/service/BaseIndexTest.java   |  2 +-
 .../kylin/rest/service/FusionModelServiceTest.java |  2 +-
 .../kylin/rest/service/ModelServiceTest.java       |  4 +--
 .../kylin/rest/service/TableServiceTest.java       |  2 +-
 .../kylin/query/routing/RealizationChooser.java    |  2 +-
 .../org/apache/kylin/query/schema/OLAPTable.java   |  2 +-
 .../query/security/AccessDeniedException.java      |  2 +-
 .../org/apache/kylin/query/security/RowFilter.java |  2 +-
 .../apache/kylin/query/util/AsyncQueryUtil.java    |  2 +-
 .../query/util/ModelViewSqlNodeComparator.java     |  2 +-
 .../org/apache/kylin/query/util/PushDownUtil.java  |  2 +-
 .../apache/kylin/query/util/QueryAliasMatcher.java |  2 +-
 .../rest/controller/NAsyncQueryController.java     |  2 +-
 .../kylin/rest/controller/NQueryController.java    |  2 +-
 .../controller/SparkMetricsControllerTest.java     |  2 +-
 .../apache/kylin/rest/response/SQLResponseV2.java  |  2 +-
 .../kylin/rest/service/ModelQueryService.java      |  2 +-
 .../apache/kylin/rest/service/MonitorService.java  |  2 +-
 .../kylin/rest/service/QueryHistoryService.java    |  2 +-
 .../apache/kylin/rest/service/QueryService.java    |  2 +-
 .../kylin/rest/util/QueryCacheSignatureUtil.java   |  2 +-
 .../org/apache/kylin/rest/util/QueryUtils.java     |  2 +-
 .../kylin/query/engine/AsyncQueryApplication.java  |  2 +-
 .../apache/kylin/query/engine/AsyncQueryJob.java   |  2 +-
 .../kylin/query/engine/view/ModelViewTest.java     |  2 +-
 .../kylin/query/schema/KylinSqlValidatorTest.java  |  2 +-
 .../kap/clickhouse/ClickHouseStorage.java          |  2 +-
 .../kyligence/kap/clickhouse/job/ClickHouse.java   | 15 +++++------
 .../kap/clickhouse/job/ClickHouseLoad.java         |  2 +-
 .../kap/clickhouse/job/ClickhouseLoadFileLoad.java |  2 +-
 .../kap/clickhouse/job/HadoopMockUtil.java         |  2 +-
 .../management/OpenSecondStorageEndpoint.java      |  2 +-
 .../management/SecondStorageEndpoint.java          |  2 +-
 .../io/kyligence/kap/secondstorage/ddl/DDL.java    |  2 +-
 .../kap/secondstorage/ddl/exp/TableIdentifier.java |  2 +-
 .../kap/secondstorage/metadata/Manager.java        |  2 +-
 .../org/apache/kylin/rest/QueryNodeFilter.java     |  2 +-
 .../apache/kylin/rest/ZookeeperClusterManager.java |  2 +-
 .../org/apache/kylin/rest/config/CorsConfig.java   |  2 +-
 .../rest/discovery/KylinServiceDiscoveryCache.java |  4 +--
 .../discovery/KylinServiceDiscoveryClient.java     |  2 +-
 .../source/hive/BeelineOptionsProcessorTest.java   |  2 +-
 .../engine/spark/application/SparkApplication.java |  2 +-
 .../spark/job/DefaultSparkBuildJobHandler.java     |  2 +-
 .../spark/job/ExecutableAddCuboidHandler.java      |  2 +-
 .../kylin/engine/spark/job/NSparkExecutable.java   |  2 +-
 .../job/SparkCleanupTransactionalTableStep.java    |  2 +-
 .../kylin/engine/spark/mockup/CsvSource.java       |  2 +-
 .../kylin/engine/spark/mockup/CsvTableReader.java  |  2 +-
 .../engine/spark/source/NSparkDataSource.java      |  2 +-
 .../spark/source/NSparkMetadataExplorer.java       |  2 +-
 .../spark/stats/analyzer/TableAnalyzerJob.java     |  2 +-
 .../spark/stats/utils/DateTimeCheckUtils.java      |  2 +-
 .../spark/utils/HiveTransactionTableHelper.java    |  2 +-
 .../engine/spark/utils/SparkJobFactoryUtils.java   |  2 +-
 .../kylin/engine/spark/job/SegmentBuildJob.java    |  2 +-
 .../kylin/engine/spark/job/SegmentMergeJob.java    |  2 +-
 .../kylin/engine/spark/job/SnapshotBuildJob.java   |  2 +-
 .../org/apache/kylin/source/jdbc/JdbcSource.java   |  2 +-
 .../kylin/engine/spark/job/NSparkCubingUtil.java   |  2 +-
 .../apache/spark/dict/NGlobalDictHDFSStore.java    |  2 +-
 .../asyncprofiler/AsyncProfilerToolTest.java       |  2 +-
 .../kylin/rest/service/StreamingJobService.java    |  2 +-
 .../org/apache/kylin/kafka/util/KafkaUtils.java    |  2 +-
 .../streaming/jobs/AbstractSparkJobLauncher.java   |  2 +-
 .../streaming/manager/StreamingJobManager.java     |  2 +-
 .../apache/kylin/streaming/rest/RestSupport.java   |  2 +-
 .../kylin/tool/AbstractInfoExtractorTool.java      |  2 +-
 .../java/org/apache/kylin/tool/AuditLogTool.java   |  2 +-
 .../org/apache/kylin/tool/ClickhouseDiagTool.java  |  4 +--
 .../main/java/org/apache/kylin/tool/ConfTool.java  |  2 +-
 .../apache/kylin/tool/DumpHadoopSystemProps.java   |  2 +-
 .../org/apache/kylin/tool/JobDiagInfoTool.java     |  2 +-
 .../java/org/apache/kylin/tool/KylinLogTool.java   |  2 +-
 .../org/apache/kylin/tool/daemon/KapGuardian.java  |  2 +-
 .../apache/kylin/tool/obf/KylinConfObfuscator.java |  2 +-
 .../kylin/tool/upgrade/CheckProjectModeCLI.java    |  2 +-
 .../kylin/tool/upgrade/DeleteFavoriteQueryCLI.java |  2 +-
 .../apache/kylin/tool/upgrade/RenameEntity.java    |  2 +-
 .../kylin/tool/upgrade/RenameUserResourceTool.java |  2 +-
 .../apache/kylin/tool/upgrade/UpdateModelCLI.java  |  2 +-
 .../kylin/tool/upgrade/UpdateProjectCLI.java       |  2 +-
 .../kylin/tool/upgrade/UpdateSessionTableCLI.java  |  2 +-
 .../kylin/tool/upgrade/UpdateUserGroupCLI.java     |  2 +-
 .../kylin/tool/util/HadoopConfExtractor.java       |  2 +-
 .../org/apache/kylin/tool/util/ServerInfoUtil.java |  2 +-
 .../org/apache/kylin/tool/StorageCleanerTest.java  |  2 +-
 .../kylin/tool/garbage/SnapshotCleanerTest.java    |  2 +-
 .../apache/kylin/tool/general/CryptToolTest.java   |  2 +-
 .../tool/upgrade/RenameUserResourceToolTest.java   |  2 +-
 221 files changed, 239 insertions(+), 255 deletions(-)

diff --git a/src/common-server/src/main/java/org/apache/kylin/rest/controller/NBasicController.java b/src/common-server/src/main/java/org/apache/kylin/rest/controller/NBasicController.java
index 914338294a..4115fd488b 100644
--- a/src/common-server/src/main/java/org/apache/kylin/rest/controller/NBasicController.java
+++ b/src/common-server/src/main/java/org/apache/kylin/rest/controller/NBasicController.java
@@ -71,7 +71,7 @@ import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/KylinPrepareEnvListener.java b/src/common-service/src/main/java/org/apache/kylin/rest/KylinPrepareEnvListener.java
index 483acca4b9..5a83565d0c 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/KylinPrepareEnvListener.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/KylinPrepareEnvListener.java
@@ -22,7 +22,7 @@ import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.TempMetadataBuilder;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/aspect/InsensitiveNameAspect.java b/src/common-service/src/main/java/org/apache/kylin/rest/aspect/InsensitiveNameAspect.java
index d4631a785a..1d05598f3a 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/aspect/InsensitiveNameAspect.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/aspect/InsensitiveNameAspect.java
@@ -20,7 +20,7 @@ package org.apache.kylin.rest.aspect;
 import java.util.Objects;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.MetadataConstants;
 import org.apache.kylin.metadata.project.ProjectInstance;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/broadcaster/Broadcaster.java b/src/common-service/src/main/java/org/apache/kylin/rest/broadcaster/Broadcaster.java
index 92b9686557..d517a82742 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/broadcaster/Broadcaster.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/broadcaster/Broadcaster.java
@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.kylin.common.constant.LogConstant;
 import org.apache.kylin.common.logging.SetLogCategory;
 import org.apache.kylin.common.persistence.transaction.BroadcastEventReadyNotifier;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/AclTCRListener.java b/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/AclTCRListener.java
index 33d93145e8..9a2dc2a6d0 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/AclTCRListener.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/AclTCRListener.java
@@ -21,7 +21,7 @@ package org.apache.kylin.rest.config.initialize;
 import java.util.Objects;
 import java.util.Optional;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.RawResource;
 import org.apache.kylin.common.persistence.transaction.EventListenerRegistry;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/CacheCleanListener.java b/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/CacheCleanListener.java
index 175b62970e..23b7aa3a37 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/CacheCleanListener.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/CacheCleanListener.java
@@ -22,7 +22,7 @@ import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.RawResource;
 import org.apache.kylin.common.persistence.ResourceStore;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/MetricsRegistry.java b/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/MetricsRegistry.java
index 987df10e52..2ded66dbab 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/MetricsRegistry.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/MetricsRegistry.java
@@ -32,7 +32,7 @@ import java.util.stream.Stream;
 import javax.sql.DataSource;
 
 import org.apache.commons.dbcp2.BasicDataSource;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.event.ModelAddEvent;
 import org.apache.kylin.common.metrics.MetricsCategory;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/TableSchemaChangeListener.java b/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/TableSchemaChangeListener.java
index c0a0ae3950..05469db9fd 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/TableSchemaChangeListener.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/config/initialize/TableSchemaChangeListener.java
@@ -21,7 +21,7 @@ package org.apache.kylin.rest.config.initialize;
 import java.util.Objects;
 import java.util.Optional;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.RawResource;
 import org.apache.kylin.common.persistence.transaction.EventListenerRegistry;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupEntityValidator.java b/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupEntityValidator.java
index 06e791f7ae..9670ccbd44 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupEntityValidator.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupEntityValidator.java
@@ -24,7 +24,7 @@ import static org.apache.kylin.common.exception.code.ErrorCodeServer.RESOURCE_GR
 import java.util.HashMap;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.metadata.resourcegroup.ResourceGroupEntity;
 import org.apache.kylin.rest.request.resourecegroup.ResourceGroupRequest;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupKylinInstanceValidator.java b/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupKylinInstanceValidator.java
index 794093f478..f9f6f83824 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupKylinInstanceValidator.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupKylinInstanceValidator.java
@@ -25,7 +25,7 @@ import static org.apache.kylin.common.exception.code.ErrorCodeServer.RESOURCE_GR
 import java.util.List;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.metadata.resourcegroup.KylinInstance;
 import org.apache.kylin.metadata.resourcegroup.ResourceGroupEntity;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupMappingInfoValidator.java b/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupMappingInfoValidator.java
index 8dc047e262..f6ccb87c55 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupMappingInfoValidator.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/handler/resourcegroup/ResourceGroupMappingInfoValidator.java
@@ -27,7 +27,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.metadata.project.ProjectInstance;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/interceptor/RepeatableRequestBodyFilter.java b/src/common-service/src/main/java/org/apache/kylin/rest/interceptor/RepeatableRequestBodyFilter.java
index 1d8db53c62..cc6d778d81 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/interceptor/RepeatableRequestBodyFilter.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/interceptor/RepeatableRequestBodyFilter.java
@@ -28,7 +28,7 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
 import org.apache.kylin.common.util.Pair;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/interceptor/ResourceGroupCheckerFilter.java b/src/common-service/src/main/java/org/apache/kylin/rest/interceptor/ResourceGroupCheckerFilter.java
index 07e7e72587..7b30f0e66a 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/interceptor/ResourceGroupCheckerFilter.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/interceptor/ResourceGroupCheckerFilter.java
@@ -31,7 +31,7 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.Message;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/monitor/MonitorReporter.java b/src/common-service/src/main/java/org/apache/kylin/rest/monitor/MonitorReporter.java
index 16bfc47612..eb893e2216 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/monitor/MonitorReporter.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/monitor/MonitorReporter.java
@@ -26,7 +26,7 @@ import java.util.concurrent.LinkedBlockingDeque;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.Singletons;
 import org.apache.kylin.common.util.ExecutorServiceUtil;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/request/UserRequest.java b/src/common-service/src/main/java/org/apache/kylin/rest/request/UserRequest.java
index 1ba4546776..a29b6ff8c1 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/request/UserRequest.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/request/UserRequest.java
@@ -26,7 +26,7 @@ import java.util.Objects;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.ArgsTypeJsonDeserializer;
 import org.apache.kylin.metadata.insensitive.UserInsensitiveRequest;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/service/AccessService.java b/src/common-service/src/main/java/org/apache/kylin/rest/service/AccessService.java
index 41230847eb..40ebeb23f3 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/service/AccessService.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/service/AccessService.java
@@ -63,7 +63,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/service/AsyncTaskService.java b/src/common-service/src/main/java/org/apache/kylin/rest/service/AsyncTaskService.java
index 1b26150623..a343a464c6 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/service/AsyncTaskService.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/service/AsyncTaskService.java
@@ -32,7 +32,7 @@ import java.util.stream.Collectors;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.metrics.MetricsCategory;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/service/BasicService.java b/src/common-service/src/main/java/org/apache/kylin/rest/service/BasicService.java
index cfbf3354e9..aa245ac9ee 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/service/BasicService.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/service/BasicService.java
@@ -28,7 +28,7 @@ import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.transaction.BroadcastEventReadyNotifier;
 import org.apache.kylin.common.util.JsonUtil;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/service/LdapUserService.java b/src/common-service/src/main/java/org/apache/kylin/rest/service/LdapUserService.java
index 89fdae3ac9..5aac3f2f17 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/service/LdapUserService.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/service/LdapUserService.java
@@ -36,7 +36,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 
 import javax.naming.directory.SearchControls;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.msg.MsgPicker;
 import org.apache.kylin.common.util.CaseInsensitiveStringMap;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/util/DaemonThreadFactory.java b/src/common-service/src/main/java/org/apache/kylin/rest/service/MockQuerySmartSupporter.java
similarity index 55%
copy from src/core-common/src/main/java/org/apache/kylin/common/util/DaemonThreadFactory.java
copy to src/common-service/src/main/java/org/apache/kylin/rest/service/MockQuerySmartSupporter.java
index 5c4b0444fb..4ec15c5557 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/util/DaemonThreadFactory.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/service/MockQuerySmartSupporter.java
@@ -15,32 +15,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.kylin.common.util;
+package org.apache.kylin.rest.service;
 
-import java.util.concurrent.Executors;
-import java.util.concurrent.ThreadFactory;
+import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
-
-/**
- */
-public class DaemonThreadFactory implements ThreadFactory {
-    private String poolName = null;
-
-    public DaemonThreadFactory() {
-    }
-
-    public DaemonThreadFactory(String poolName) {
-        this.poolName = poolName;
-    }
+import org.apache.kylin.metadata.query.QueryHistory;
+import org.springframework.stereotype.Component;
 
+@Component
+public class MockQuerySmartSupporter implements QuerySmartSupporter {
     @Override
-    public Thread newThread(Runnable r) {
-        Thread t = Executors.defaultThreadFactory().newThread(r);
-        if (StringUtils.isNotBlank(poolName)) {
-            t.setName(poolName.concat("-") + t.getId());
-        }
-        t.setDaemon(true);
-        return t;
+    public void onMatchQueryHistory(String project, List<QueryHistory> queries, boolean manual) {
+        //do nothing
     }
 }
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/service/OpenUserGroupService.java b/src/common-service/src/main/java/org/apache/kylin/rest/service/OpenUserGroupService.java
index d26e91e85d..55c92daad6 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/service/OpenUserGroupService.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/service/OpenUserGroupService.java
@@ -23,7 +23,7 @@ import java.util.Locale;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.annotation.ThirdPartyDependencies;
 import org.apache.kylin.common.msg.MsgPicker;
 import org.apache.kylin.metadata.user.ManagedUser;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/service/ProjectService.java b/src/common-service/src/main/java/org/apache/kylin/rest/service/ProjectService.java
index 1af9955759..9d4663c301 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/service/ProjectService.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/service/ProjectService.java
@@ -59,7 +59,7 @@ import java.util.stream.Collectors;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.KylinConfigBase;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/service/SystemService.java b/src/common-service/src/main/java/org/apache/kylin/rest/service/SystemService.java
index 63ddcda042..fa467e414d 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/service/SystemService.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/service/SystemService.java
@@ -42,7 +42,7 @@ import java.util.stream.Collectors;
 import javax.validation.constraints.NotNull;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.KylinConfigBase;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/common-service/src/main/java/org/apache/kylin/rest/service/UserAclService.java b/src/common-service/src/main/java/org/apache/kylin/rest/service/UserAclService.java
index 90641b3154..4ce2a58b9e 100644
--- a/src/common-service/src/main/java/org/apache/kylin/rest/service/UserAclService.java
+++ b/src/common-service/src/main/java/org/apache/kylin/rest/service/UserAclService.java
@@ -33,7 +33,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/util/ToolUtil.java b/src/common-service/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
index b4cccb2868..f19d575bab 100644
--- a/src/common-service/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
+++ b/src/common-service/src/main/java/org/apache/kylin/tool/util/ToolUtil.java
@@ -31,7 +31,7 @@ import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
index 9e542921e5..a0908f7043 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfig.java
@@ -40,7 +40,7 @@ import javax.annotation.Nullable;
 
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.Path;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.common.util.OrderedProperties;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
index b1f8541092..f1770e9fb2 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/KylinConfigBase.java
@@ -52,7 +52,7 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.text.StrSubstitutor;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/KylinVersion.java b/src/core-common/src/main/java/org/apache/kylin/common/KylinVersion.java
index 48461e155e..0230eb19ac 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/KylinVersion.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/KylinVersion.java
@@ -25,7 +25,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Iterables;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/StorageURL.java b/src/core-common/src/main/java/org/apache/kylin/common/StorageURL.java
index 46c58aa489..d034bff18c 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/StorageURL.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/StorageURL.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.concurrent.ExecutionException;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java b/src/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
index 4a4a2ca2ce..f69f0aab4c 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/debug/BackdoorToggles.java
@@ -20,7 +20,7 @@ package org.apache.kylin.common.debug;
 
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.Pair;
 
 import com.google.common.collect.Maps;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/persistence/StringEntity.java b/src/core-common/src/main/java/org/apache/kylin/common/persistence/StringEntity.java
index 71ef48f8db..4c3113ed24 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/persistence/StringEntity.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/persistence/StringEntity.java
@@ -22,7 +22,7 @@ import java.io.DataInputStream;
 import java.io.DataOutputStream;
 import java.io.IOException;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import lombok.Getter;
 import lombok.Setter;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/JdbcMetadataStore.java b/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/JdbcMetadataStore.java
index 092c80c334..ad775a0334 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/JdbcMetadataStore.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/persistence/metadata/JdbcMetadataStore.java
@@ -36,7 +36,7 @@ import javax.annotation.Nullable;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.dbcp2.BasicDataSource;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.persistence.RawResource;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/persistence/transaction/AuditLogReplayWorker.java b/src/core-common/src/main/java/org/apache/kylin/common/persistence/transaction/AuditLogReplayWorker.java
index 63299c0aa4..380729ab4c 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/persistence/transaction/AuditLogReplayWorker.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/persistence/transaction/AuditLogReplayWorker.java
@@ -31,7 +31,7 @@ import java.util.stream.Collectors;
 import java.util.stream.LongStream;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.constant.LogConstant;
 import org.apache.kylin.common.logging.SetLogCategory;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/util/DaemonThreadFactory.java b/src/core-common/src/main/java/org/apache/kylin/common/util/DaemonThreadFactory.java
index 5c4b0444fb..4b7a391105 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/util/DaemonThreadFactory.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/util/DaemonThreadFactory.java
@@ -20,7 +20,7 @@ package org.apache.kylin.common.util;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ThreadFactory;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 /**
  */
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java b/src/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java
index c70edf46d2..d7c541ed41 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/util/DateFormat.java
@@ -34,7 +34,7 @@ import java.util.Map;
 import java.util.TimeZone;
 import java.util.concurrent.ConcurrentHashMap;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/util/EncryptUtil.java b/src/core-common/src/main/java/org/apache/kylin/common/util/EncryptUtil.java
index c308754f12..ba73b9de0f 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/util/EncryptUtil.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/util/EncryptUtil.java
@@ -24,7 +24,7 @@ import javax.crypto.Cipher;
 import javax.crypto.spec.SecretKeySpec;
 
 import org.apache.commons.codec.binary.Base64;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 public class EncryptUtil {
     /**
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java b/src/core-common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
index 5137e9ead0..8e4250fc0f 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/util/HadoopUtil.java
@@ -32,7 +32,7 @@ import java.util.Locale;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.ContentSummary;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/util/OrderedProperties.java b/src/core-common/src/main/java/org/apache/kylin/common/util/OrderedProperties.java
index 8ed35b42cd..839bca8a14 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/util/OrderedProperties.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/util/OrderedProperties.java
@@ -43,7 +43,7 @@ import java.util.Vector;
 
 import javax.annotation.Nonnull;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import com.google.common.base.Preconditions;
 
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/util/SSHClient.java b/src/core-common/src/main/java/org/apache/kylin/common/util/SSHClient.java
index cf3afcb227..a93363c0ff 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/util/SSHClient.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/util/SSHClient.java
@@ -31,7 +31,7 @@ import java.io.OutputStream;
 import java.nio.charset.Charset;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.LoggerFactory;
 
 import com.jcraft.jsch.Channel;
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/util/Unsafe.java b/src/core-common/src/main/java/org/apache/kylin/common/util/Unsafe.java
index 2fbf08fce1..4de01d989b 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/util/Unsafe.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/util/Unsafe.java
@@ -23,7 +23,7 @@ import java.text.MessageFormat;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.SystemPropertiesCache;
 
 /**
diff --git a/src/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java b/src/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
index b4c402be99..fb9394c6c8 100644
--- a/src/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
+++ b/src/core-common/src/main/java/org/apache/kylin/common/util/ZipFileUtils.java
@@ -31,7 +31,7 @@ import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.CommonErrorCode;
 import org.apache.kylin.common.exception.KylinException;
 
diff --git a/src/core-common/src/main/java/org/apache/kylin/rest/util/PagingUtil.java b/src/core-common/src/main/java/org/apache/kylin/rest/util/PagingUtil.java
index 6ae7c40c25..613de19dc7 100644
--- a/src/core-common/src/main/java/org/apache/kylin/rest/util/PagingUtil.java
+++ b/src/core-common/src/main/java/org/apache/kylin/rest/util/PagingUtil.java
@@ -23,7 +23,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 public class PagingUtil {
 
diff --git a/src/core-common/src/test/java/org/apache/kylin/common/util/NLocalFileMetadataTestCase.java b/src/core-common/src/test/java/org/apache/kylin/common/util/NLocalFileMetadataTestCase.java
index f677ab9a49..212dea3c0c 100644
--- a/src/core-common/src/test/java/org/apache/kylin/common/util/NLocalFileMetadataTestCase.java
+++ b/src/core-common/src/test/java/org/apache/kylin/common/util/NLocalFileMetadataTestCase.java
@@ -27,7 +27,7 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Function;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.AbstractTestCase;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
diff --git a/src/core-job/src/main/java/org/apache/kylin/engine/spark/ExecutableUtils.java b/src/core-job/src/main/java/org/apache/kylin/engine/spark/ExecutableUtils.java
index 11636e770f..5629b167b8 100644
--- a/src/core-job/src/main/java/org/apache/kylin/engine/spark/ExecutableUtils.java
+++ b/src/core-job/src/main/java/org/apache/kylin/engine/spark/ExecutableUtils.java
@@ -23,7 +23,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.job.execution.AbstractExecutable;
diff --git a/src/core-job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java b/src/core-job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
index 2c8c62a7a0..cfa3da6e19 100644
--- a/src/core-job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
+++ b/src/core-job/src/main/java/org/apache/kylin/job/dao/ExecutablePO.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.job.constant.ExecutableConstants;
diff --git a/src/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java b/src/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
index 0a3f882320..b08539eb87 100644
--- a/src/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
+++ b/src/core-job/src/main/java/org/apache/kylin/job/engine/JobEngineConfig.java
@@ -22,7 +22,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Locale;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.OptionsHelper;
 import org.slf4j.Logger;
diff --git a/src/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java b/src/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
index 2baf95144c..2805ee0b31 100644
--- a/src/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
+++ b/src/core-job/src/main/java/org/apache/kylin/job/execution/AbstractExecutable.java
@@ -52,7 +52,7 @@ import java.util.stream.Collectors;
 
 import io.kyligence.kap.guava20.shaded.common.base.Throwables;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/core-job/src/main/java/org/apache/kylin/job/execution/DefaultExecutableOnModel.java b/src/core-job/src/main/java/org/apache/kylin/job/execution/DefaultExecutableOnModel.java
index a87887f492..339efeef8d 100644
--- a/src/core-job/src/main/java/org/apache/kylin/job/execution/DefaultExecutableOnModel.java
+++ b/src/core-job/src/main/java/org/apache/kylin/job/execution/DefaultExecutableOnModel.java
@@ -24,7 +24,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import com.google.common.collect.Sets;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.StringUtil;
 import org.apache.kylin.job.model.JobParam;
diff --git a/src/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableParams.java b/src/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableParams.java
index bdd07a3201..2fa462efc2 100644
--- a/src/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableParams.java
+++ b/src/core-job/src/main/java/org/apache/kylin/job/execution/ExecutableParams.java
@@ -35,7 +35,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.MailHelper;
diff --git a/src/core-job/src/test/java/org/apache/kylin/job/execution/NExecutableManagerTest.java b/src/core-job/src/test/java/org/apache/kylin/job/execution/NExecutableManagerTest.java
index 8934603053..4ba31b27c1 100644
--- a/src/core-job/src/test/java/org/apache/kylin/job/execution/NExecutableManagerTest.java
+++ b/src/core-job/src/test/java/org/apache/kylin/job/execution/NExecutableManagerTest.java
@@ -43,7 +43,7 @@ import java.util.Map;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/NDefaultSchedulerTest.java b/src/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/NDefaultSchedulerTest.java
index 1ed40dbbd8..4f56118395 100644
--- a/src/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/NDefaultSchedulerTest.java
+++ b/src/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/NDefaultSchedulerTest.java
@@ -40,7 +40,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.transaction.UnitOfWork;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/acl/AclTCRManager.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/acl/AclTCRManager.java
index ccd40959fc..fe8078bcad 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/acl/AclTCRManager.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/acl/AclTCRManager.java
@@ -32,7 +32,7 @@ import java.util.stream.Stream;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang.text.StrBuilder;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/AggIndexMatcher.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/AggIndexMatcher.java
index 7854f7a8f1..1fb13bc80b 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/AggIndexMatcher.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/AggIndexMatcher.java
@@ -28,7 +28,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.measure.MeasureType;
 import org.apache.kylin.measure.basic.BasicMeasureType;
 import org.apache.kylin.metadata.cube.model.IndexEntity;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/IndexMatcher.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/IndexMatcher.java
index 8dad4df87e..d485f8524a 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/IndexMatcher.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/IndexMatcher.java
@@ -26,7 +26,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.metadata.cube.model.IndexEntity;
 import org.apache.kylin.metadata.cube.model.LayoutEntity;
 import org.apache.kylin.metadata.cube.model.NDataflow;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/KECuboidSchedulerV1.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/KECuboidSchedulerV1.java
index 325898a158..ed5a851a6b 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/KECuboidSchedulerV1.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/cuboid/KECuboidSchedulerV1.java
@@ -32,7 +32,7 @@ import java.util.stream.Stream;
 
 import javax.annotation.Nullable;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.OutOfMaxCombinationException;
 import org.apache.kylin.common.exception.code.ErrorCodeServer;
 import org.apache.kylin.common.util.ThreadUtil;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLoadingRangeManager.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLoadingRangeManager.java
index 28f220dd6c..5ffeb2e579 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLoadingRangeManager.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataLoadingRangeManager.java
@@ -22,7 +22,7 @@ import java.io.IOException;
 import java.util.List;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.Serializer;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataSegment.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataSegment.java
index b0e4795c6d..ddb81e407a 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataSegment.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataSegment.java
@@ -30,7 +30,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.metadata.model.ISegment;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataflowCapabilityChecker.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataflowCapabilityChecker.java
index 34d3a016f8..82e1e82853 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataflowCapabilityChecker.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NDataflowCapabilityChecker.java
@@ -23,7 +23,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
 import org.apache.kylin.metadata.cube.cuboid.NLayoutCandidate;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NIndexPlanManager.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NIndexPlanManager.java
index be1a135a13..223fdb2f4e 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NIndexPlanManager.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/model/NIndexPlanManager.java
@@ -27,7 +27,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.KylinConfigExt;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/storage/ProjectStorageInfoCollector.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/storage/ProjectStorageInfoCollector.java
index 1148d304e3..8d2dc7f03b 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/storage/ProjectStorageInfoCollector.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/cube/storage/ProjectStorageInfoCollector.java
@@ -21,7 +21,7 @@ package org.apache.kylin.metadata.cube.storage;
 import java.util.List;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 
 import com.google.common.collect.Lists;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/BooleanSerializer.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/BooleanSerializer.java
index 0920f831f8..b86d729cb4 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/BooleanSerializer.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/BooleanSerializer.java
@@ -21,7 +21,7 @@ package org.apache.kylin.metadata.datatype;
 import java.nio.ByteBuffer;
 import java.util.Locale;
 
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang.BooleanUtils;
 
 public class BooleanSerializer extends DataTypeSerializer<Long> {
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataType.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataType.java
index ce7081c1bc..81e5881ef5 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataType.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/datatype/DataType.java
@@ -33,7 +33,7 @@ import java.util.concurrent.ConcurrentMap;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.BytesSerializer;
 import org.apache.kylin.common.util.BytesUtil;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/epoch/EpochManager.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/epoch/EpochManager.java
index a68d25eeec..c7b22204e3 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/epoch/EpochManager.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/epoch/EpochManager.java
@@ -42,7 +42,7 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.Singletons;
 import org.apache.kylin.common.constant.LogConstant;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/LikeMatchers.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/LikeMatchers.java
index 9ecbf0762a..2126a22175 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/LikeMatchers.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/filter/function/LikeMatchers.java
@@ -20,7 +20,7 @@ package org.apache.kylin.metadata.filter.function;
 import java.util.Locale;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import com.google.common.base.Preconditions;
 
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/ModelInsensitiveRequest.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/ModelInsensitiveRequest.java
index 593f0807bb..3891183fed 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/ModelInsensitiveRequest.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/ModelInsensitiveRequest.java
@@ -22,7 +22,7 @@ import java.lang.reflect.Field;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.common.util.Unsafe;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/ProjectInsensitiveRequest.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/ProjectInsensitiveRequest.java
index ba98d1462c..335e3450d7 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/ProjectInsensitiveRequest.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/ProjectInsensitiveRequest.java
@@ -22,7 +22,7 @@ import java.lang.reflect.Field;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.project.ProjectInstance;
 import org.apache.kylin.common.util.Unsafe;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/UserInsensitiveRequest.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/UserInsensitiveRequest.java
index e7ed83f735..53f1443e58 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/UserInsensitiveRequest.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/insensitive/UserInsensitiveRequest.java
@@ -22,7 +22,7 @@ import java.lang.reflect.Field;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.Unsafe;
 import org.apache.kylin.metadata.user.ManagedUser;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ComputedColumnDesc.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ComputedColumnDesc.java
index 6d642c4743..40d25f80b0 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ComputedColumnDesc.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ComputedColumnDesc.java
@@ -34,7 +34,7 @@ import org.apache.calcite.sql.SqlIdentifier;
 import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.util.SqlBasicVisitor;
 import org.apache.calcite.sql.util.SqlVisitor;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
 import org.apache.kylin.measure.MeasureTypeFactory;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinedFlatTable.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinedFlatTable.java
index d8fb2b2964..b222252d63 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinedFlatTable.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/JoinedFlatTable.java
@@ -29,7 +29,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.calcite.avatica.util.Quoting;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Preconditions;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java
index 22b5fa3485..5176517b8f 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/MeasureDesc.java
@@ -21,7 +21,7 @@ package org.apache.kylin.metadata.model;
 import java.io.Serializable;
 import java.util.Objects;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ModelJoinRelationTypeEnum.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ModelJoinRelationTypeEnum.java
index 0c3ac2925d..0aca46255e 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ModelJoinRelationTypeEnum.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/ModelJoinRelationTypeEnum.java
@@ -17,7 +17,7 @@
  */
 package org.apache.kylin.metadata.model;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import com.fasterxml.jackson.annotation.JsonCreator;
 import com.fasterxml.jackson.annotation.JsonValue;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NDataModelManager.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NDataModelManager.java
index b519717da6..0e38ddb9b2 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NDataModelManager.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NDataModelManager.java
@@ -27,7 +27,7 @@ import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.exception.code.ErrorCodeServer;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NTableMetadataManager.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NTableMetadataManager.java
index 1556f6be66..c3ecda0c2b 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NTableMetadataManager.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/NTableMetadataManager.java
@@ -29,7 +29,7 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.RawResource;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
index 13022d135d..b6cd7ebd2a 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/TblColRef.java
@@ -29,7 +29,7 @@ import java.util.Set;
 import org.apache.calcite.avatica.util.Quoting;
 import org.apache.calcite.sql.SqlKind;
 import org.apache.calcite.sql.SqlOperator;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.metadata.datatype.DataType;
 
 import lombok.Getter;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/alias/ExpressionComparator.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/alias/ExpressionComparator.java
index 1c4d692ebc..6b98dd45e5 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/alias/ExpressionComparator.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/alias/ExpressionComparator.java
@@ -31,7 +31,7 @@ import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlNodeList;
 import org.apache.calcite.sql.SqlOperator;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/schema/AffectedModelContext.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/schema/AffectedModelContext.java
index fb4ad339a8..3c37bccf98 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/schema/AffectedModelContext.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/schema/AffectedModelContext.java
@@ -24,7 +24,7 @@ import java.util.function.UnaryOperator;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.Pair;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/schema/ModelEdgeCollector.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/schema/ModelEdgeCollector.java
index ccda8a9527..57cf5e5bfe 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/schema/ModelEdgeCollector.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/schema/ModelEdgeCollector.java
@@ -25,7 +25,7 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.metadata.cube.cuboid.NAggregationGroup;
 import org.apache.kylin.metadata.cube.model.IndexPlan;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/tool/CalciteParser.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/tool/CalciteParser.java
index b09da6b5fa..16c6e85ba6 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/tool/CalciteParser.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/model/tool/CalciteParser.java
@@ -39,7 +39,7 @@ import org.apache.calcite.sql.parser.SqlParser;
 import org.apache.calcite.sql.parser.SqlParserPos;
 import org.apache.calcite.sql.util.SqlBasicVisitor;
 import org.apache.calcite.sql.util.SqlVisitor;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ExpModifier;
 import org.apache.kylin.common.util.Pair;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/query/JdbcQueryHistoryStore.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/query/JdbcQueryHistoryStore.java
index 250c704991..06ac3dadd6 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/query/JdbcQueryHistoryStore.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/query/JdbcQueryHistoryStore.java
@@ -50,7 +50,7 @@ import java.util.stream.Collectors;
 
 import javax.sql.DataSource;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.jdbc.ScriptRunner;
 import org.apache.ibatis.session.ExecutorType;
 import org.apache.ibatis.session.SqlSession;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigest.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigest.java
index 2620121e73..cb8b5ff0a3 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigest.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/realization/SQLDigest.java
@@ -27,7 +27,7 @@ import java.util.Objects;
 import java.util.Set;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.JoinDesc;
 import org.apache.kylin.metadata.model.MeasureDesc;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/candidate/RawRecItemTable.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/candidate/RawRecItemTable.java
index 9e799d3bba..01113d71af 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/candidate/RawRecItemTable.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/candidate/RawRecItemTable.java
@@ -27,7 +27,7 @@ import java.sql.SQLException;
 
 import org.apache.kylin.metadata.recommendation.entity.RecItemV2;
 import org.apache.commons.lang.SerializationException;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.ibatis.type.JdbcType;
 import org.apache.ibatis.type.TypeHandler;
 import org.apache.kylin.common.util.JsonUtil;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/entity/CCRecItemV2.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/entity/CCRecItemV2.java
index 4d474e1262..9525cd6287 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/entity/CCRecItemV2.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/entity/CCRecItemV2.java
@@ -21,7 +21,7 @@ package org.apache.kylin.metadata.recommendation.entity;
 import java.io.Serializable;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.metadata.model.TblColRef;
 import org.apache.kylin.metadata.model.ComputedColumnDesc;
 import org.apache.kylin.metadata.model.NDataModel;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/ref/OptRecV2.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/ref/OptRecV2.java
index 44da2716cb..404e23abb0 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/ref/OptRecV2.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/recommendation/ref/OptRecV2.java
@@ -27,7 +27,7 @@ import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.metadata.cube.model.LayoutEntity;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/sourceusage/SourceUsageManager.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/sourceusage/SourceUsageManager.java
index 882a085f6d..014272635f 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/sourceusage/SourceUsageManager.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/sourceusage/SourceUsageManager.java
@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.annotation.Clarification;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/streaming/KafkaConfig.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/streaming/KafkaConfig.java
index e9a2ec0b48..fb81c6ecb4 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/streaming/KafkaConfig.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/streaming/KafkaConfig.java
@@ -22,7 +22,7 @@ import java.io.Serializable;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.metadata.MetadataConstants;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/rest/security/ExternalAclProvider.java b/src/core-metadata/src/main/java/org/apache/kylin/rest/security/ExternalAclProvider.java
index 25289385f0..e4cf56e15a 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/rest/security/ExternalAclProvider.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/rest/security/ExternalAclProvider.java
@@ -23,7 +23,7 @@ import static org.apache.kylin.common.exception.ServerErrorCode.PERMISSION_DENIE
 
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.Singletons;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/rest/security/UserAclManager.java b/src/core-metadata/src/main/java/org/apache/kylin/rest/security/UserAclManager.java
index 4d34c5c71c..d9a66000e1 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/rest/security/UserAclManager.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/rest/security/UserAclManager.java
@@ -26,7 +26,7 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.transaction.UnitOfWork;
diff --git a/src/core-metadata/src/test/java/org/apache/kylin/metadata/epoch/EpochUpdateLockManagerTest.java b/src/core-metadata/src/test/java/org/apache/kylin/metadata/epoch/EpochUpdateLockManagerTest.java
index 4683b6f556..4e235d8166 100644
--- a/src/core-metadata/src/test/java/org/apache/kylin/metadata/epoch/EpochUpdateLockManagerTest.java
+++ b/src/core-metadata/src/test/java/org/apache/kylin/metadata/epoch/EpochUpdateLockManagerTest.java
@@ -22,7 +22,7 @@ import java.util.List;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.kylin.junit.annotation.JdbcMetadataInfo;
 import org.apache.kylin.junit.annotation.MetadataInfo;
 import org.junit.Assert;
diff --git a/src/core-metrics/src/main/java/org/apache/kylin/common/metrics/MetricsGroup.java b/src/core-metrics/src/main/java/org/apache/kylin/common/metrics/MetricsGroup.java
index b97461f33b..d191fc7e44 100644
--- a/src/core-metrics/src/main/java/org/apache/kylin/common/metrics/MetricsGroup.java
+++ b/src/core-metrics/src/main/java/org/apache/kylin/common/metrics/MetricsGroup.java
@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.metrics.gauges.QueryRatioGauge;
diff --git a/src/core-metrics/src/main/java/org/apache/kylin/common/metrics/MetricsInfluxdbReporter.java b/src/core-metrics/src/main/java/org/apache/kylin/common/metrics/MetricsInfluxdbReporter.java
index 087555f533..07d3b769e1 100644
--- a/src/core-metrics/src/main/java/org/apache/kylin/common/metrics/MetricsInfluxdbReporter.java
+++ b/src/core-metrics/src/main/java/org/apache/kylin/common/metrics/MetricsInfluxdbReporter.java
@@ -29,7 +29,7 @@ import java.util.concurrent.atomic.AtomicLong;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.Singletons;
 import org.apache.kylin.common.metrics.reporter.InfluxdbReporter;
diff --git a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/BaseController.java b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/BaseController.java
index 83f152d7e8..9e6bcea3c7 100644
--- a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/BaseController.java
+++ b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/BaseController.java
@@ -53,7 +53,7 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/JobController.java b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/JobController.java
index f5214019f4..ea3e921baa 100644
--- a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/JobController.java
+++ b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/JobController.java
@@ -33,7 +33,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.rest.response.DataResult;
diff --git a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/SegmentController.java b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/SegmentController.java
index 5d8e2b4012..7ca289d990 100644
--- a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/SegmentController.java
+++ b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/SegmentController.java
@@ -28,7 +28,7 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.util.Pair;
diff --git a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/open/OpenStreamingJobController.java b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/open/OpenStreamingJobController.java
index 800c2a4ae9..855c9cb46e 100644
--- a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/open/OpenStreamingJobController.java
+++ b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/open/OpenStreamingJobController.java
@@ -23,7 +23,7 @@ import static org.apache.kylin.common.constant.HttpConstant.HTTP_VND_APACHE_KYLI
 import java.util.List;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.rest.response.DataResult;
 import org.apache.kylin.rest.response.EnvelopeResponse;
diff --git a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/v2/SegmentControllerV2.java b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/v2/SegmentControllerV2.java
index ee1de0d848..8ad2940b61 100644
--- a/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/v2/SegmentControllerV2.java
+++ b/src/data-loading-server/src/main/java/org/apache/kylin/rest/controller/v2/SegmentControllerV2.java
@@ -38,7 +38,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.job.execution.JobTypeEnum;
 import org.apache.kylin.metadata.model.Segments;
diff --git a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/SampleControllerTest.java b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/SampleControllerTest.java
index 72bfbc9888..97e2b89914 100644
--- a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/SampleControllerTest.java
+++ b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/SampleControllerTest.java
@@ -22,7 +22,7 @@ import static org.apache.kylin.common.constant.HttpConstant.HTTP_VND_APACHE_KYLI
 
 import java.nio.charset.StandardCharsets;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.NLocalFileMetadataTestCase;
 import org.apache.kylin.job.dao.ExecutablePO;
diff --git a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/StreamingJobControllerTest.java b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/StreamingJobControllerTest.java
index b8e05d3528..84ed40219a 100644
--- a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/StreamingJobControllerTest.java
+++ b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/StreamingJobControllerTest.java
@@ -24,7 +24,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashMap;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.SystemPropertiesCache;
 import org.apache.kylin.common.util.JsonUtil;
diff --git a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/open/OpenSampleControllerTest.java b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/open/OpenSampleControllerTest.java
index c76f59fc2b..0b494a9c30 100644
--- a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/open/OpenSampleControllerTest.java
+++ b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/open/OpenSampleControllerTest.java
@@ -22,7 +22,7 @@ import static org.apache.kylin.common.constant.HttpConstant.HTTP_VND_APACHE_KYLI
 
 import java.nio.charset.StandardCharsets;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
 import org.apache.kylin.common.util.JsonUtil;
diff --git a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/open/OpenStreamingJobControllerTest.java b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/open/OpenStreamingJobControllerTest.java
index 144bc1d5d1..d0c2b357cf 100644
--- a/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/open/OpenStreamingJobControllerTest.java
+++ b/src/data-loading-server/src/test/java/org/apache/kylin/rest/controller/open/OpenStreamingJobControllerTest.java
@@ -23,7 +23,7 @@ import static org.apache.kylin.common.exception.code.ErrorCodeServer.REQUEST_PAR
 
 import java.util.Collections;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.SystemPropertiesCache;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.NLocalFileMetadataTestCase;
diff --git a/src/data-loading-service/src/main/java/org/apache/kylin/rest/response/ExecutableResponse.java b/src/data-loading-service/src/main/java/org/apache/kylin/rest/response/ExecutableResponse.java
index 4a0ea0f381..c974b4caeb 100644
--- a/src/data-loading-service/src/main/java/org/apache/kylin/rest/response/ExecutableResponse.java
+++ b/src/data-loading-service/src/main/java/org/apache/kylin/rest/response/ExecutableResponse.java
@@ -24,7 +24,7 @@ import java.util.Map;
 import java.util.Optional;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.engine.spark.job.NSparkSnapshotJob;
diff --git a/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/JobService.java b/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/JobService.java
index 2a97510c86..dc35003be5 100644
--- a/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/JobService.java
+++ b/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/JobService.java
@@ -50,7 +50,7 @@ import javax.servlet.http.HttpServletRequest;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.cluster.ClusterManagerFactory;
 import org.apache.kylin.cluster.IClusterManager;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/ModelBuildService.java b/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/ModelBuildService.java
index 6d4e17b81b..c42c01e6bc 100644
--- a/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/ModelBuildService.java
+++ b/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/ModelBuildService.java
@@ -39,7 +39,7 @@ import java.util.StringJoiner;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.JobErrorCode;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/SnapshotService.java b/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/SnapshotService.java
index 431758773d..176c6281a2 100644
--- a/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/SnapshotService.java
+++ b/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/SnapshotService.java
@@ -24,7 +24,7 @@ import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import org.apache.kylin.engine.spark.job.NSparkSnapshotJob;
 import lombok.val;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.exception.ServerErrorCode;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/TableSamplingService.java b/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/TableSamplingService.java
index 698a96480f..6eddffa18f 100644
--- a/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/TableSamplingService.java
+++ b/src/data-loading-service/src/main/java/org/apache/kylin/rest/service/TableSamplingService.java
@@ -23,7 +23,7 @@ import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import org.apache.kylin.engine.spark.job.NTableSamplingJob;
 import lombok.val;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.Message;
diff --git a/src/data-loading-service/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java b/src/data-loading-service/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
index c51fc1c35e..1bb130d731 100644
--- a/src/data-loading-service/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
+++ b/src/data-loading-service/src/test/java/org/apache/kylin/rest/service/JobServiceTest.java
@@ -60,7 +60,7 @@ import javax.servlet.http.HttpServletRequest;
 
 import org.apache.kylin.metadata.epoch.EpochManager;
 import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.Path;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/adaptor/DefaultAdaptor.java b/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/adaptor/DefaultAdaptor.java
index 84fdfd3e63..6665a824e8 100644
--- a/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/adaptor/DefaultAdaptor.java
+++ b/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/adaptor/DefaultAdaptor.java
@@ -30,7 +30,7 @@ import java.util.Map;
 
 import javax.sql.rowset.CachedRowSet;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 import com.google.common.base.Joiner;
 
diff --git a/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/JdbcConnector.java b/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/JdbcConnector.java
index 32693eaf5b..86a849384c 100644
--- a/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/JdbcConnector.java
+++ b/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/JdbcConnector.java
@@ -27,7 +27,7 @@ import java.util.regex.Pattern;
 
 import javax.sql.rowset.CachedRowSet;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.metadata.datatype.DataType;
 import org.apache.kylin.sdk.datasource.adaptor.AbstractJdbcAdaptor;
 import org.apache.kylin.sdk.datasource.framework.conv.ConvMaster;
diff --git a/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/conv/ParamNodeParser.java b/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/conv/ParamNodeParser.java
index be54769363..656fffd390 100644
--- a/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/conv/ParamNodeParser.java
+++ b/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/conv/ParamNodeParser.java
@@ -20,7 +20,7 @@ package org.apache.kylin.sdk.datasource.framework.conv;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/conv/SqlConverter.java b/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/conv/SqlConverter.java
index 6981a4d531..0e7a5f1e0e 100644
--- a/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/conv/SqlConverter.java
+++ b/src/datasource-sdk/src/main/java/org/apache/kylin/sdk/datasource/framework/conv/SqlConverter.java
@@ -25,7 +25,7 @@ import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.SqlSelect;
 import org.apache.calcite.sql.dialect.CalciteSqlDialect;
 import org.apache.calcite.sql.parser.SqlParser;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.metadata.datatype.DataType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/datasource-service/src/main/java/org/apache/kylin/rest/service/SparkDDLService.java b/src/datasource-service/src/main/java/org/apache/kylin/rest/service/SparkDDLService.java
index e8f2341770..a4481e30c9 100644
--- a/src/datasource-service/src/main/java/org/apache/kylin/rest/service/SparkDDLService.java
+++ b/src/datasource-service/src/main/java/org/apache/kylin/rest/service/SparkDDLService.java
@@ -28,7 +28,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/datasource-service/src/main/java/org/apache/kylin/rest/service/TableService.java b/src/datasource-service/src/main/java/org/apache/kylin/rest/service/TableService.java
index 6b7538697c..efa49e11b1 100644
--- a/src/datasource-service/src/main/java/org/apache/kylin/rest/service/TableService.java
+++ b/src/datasource-service/src/main/java/org/apache/kylin/rest/service/TableService.java
@@ -61,7 +61,7 @@ import java.util.stream.Stream;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
diff --git a/src/job-service/src/main/java/org/apache/kylin/rest/config/initialize/JobSyncListener.java b/src/job-service/src/main/java/org/apache/kylin/rest/config/initialize/JobSyncListener.java
index 1f892e7d3c..7b5f77fb9f 100644
--- a/src/job-service/src/main/java/org/apache/kylin/rest/config/initialize/JobSyncListener.java
+++ b/src/job-service/src/main/java/org/apache/kylin/rest/config/initialize/JobSyncListener.java
@@ -33,7 +33,7 @@ import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import lombok.val;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpHeaders;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
diff --git a/src/job-service/src/test/java/org/apache/kylin/rest/config/initialize/JobSchedulerTest.java b/src/job-service/src/test/java/org/apache/kylin/rest/config/initialize/JobSchedulerTest.java
index 98a2dc6b69..0d75fb5ee8 100644
--- a/src/job-service/src/test/java/org/apache/kylin/rest/config/initialize/JobSchedulerTest.java
+++ b/src/job-service/src/test/java/org/apache/kylin/rest/config/initialize/JobSchedulerTest.java
@@ -30,7 +30,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.persistence.transaction.UnitOfWork;
diff --git a/src/kylin-it/src/test/java/org/apache/kylin/query/NKapQueryTest.java b/src/kylin-it/src/test/java/org/apache/kylin/query/NKapQueryTest.java
index b9447a22b4..c6a1912c89 100644
--- a/src/kylin-it/src/test/java/org/apache/kylin/query/NKapQueryTest.java
+++ b/src/kylin-it/src/test/java/org/apache/kylin/query/NKapQueryTest.java
@@ -23,7 +23,7 @@ import java.sql.SQLException;
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.util.Shell;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.KylinVersion;
diff --git a/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NProjectControllerTest.java b/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NProjectControllerTest.java
index 943433c64b..8c078fd32c 100644
--- a/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NProjectControllerTest.java
+++ b/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NProjectControllerTest.java
@@ -23,7 +23,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
 
 import java.util.Locale;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.metadata.project.NProjectManager;
diff --git a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NModelController.java b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NModelController.java
index 8017577c07..b520231844 100644
--- a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NModelController.java
+++ b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NModelController.java
@@ -34,7 +34,7 @@ import java.util.Locale;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.metadata.model.NDataModel;
diff --git a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NProjectController.java b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NProjectController.java
index 74b85153c3..a47868f81c 100644
--- a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NProjectController.java
+++ b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NProjectController.java
@@ -39,7 +39,7 @@ import java.util.Set;
 import javax.validation.Valid;
 
 import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NTableController.java b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NTableController.java
index 9466eb6374..1dfd998028 100644
--- a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NTableController.java
+++ b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NTableController.java
@@ -36,8 +36,8 @@ import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NUserController.java b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NUserController.java
index 60b4e0797a..fa669bfc67 100644
--- a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NUserController.java
+++ b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NUserController.java
@@ -46,7 +46,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NUserGroupController.java b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NUserGroupController.java
index ba30cd6c60..192812b1f6 100644
--- a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NUserGroupController.java
+++ b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/NUserGroupController.java
@@ -29,7 +29,7 @@ import java.util.Map;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
 import org.apache.kylin.rest.constant.Constant;
diff --git a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/v2/NAccessControllerV2.java b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/v2/NAccessControllerV2.java
index e4465dd69f..6dd3e73e45 100644
--- a/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/v2/NAccessControllerV2.java
+++ b/src/metadata-server/src/main/java/org/apache/kylin/rest/controller/v2/NAccessControllerV2.java
@@ -29,7 +29,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.persistence.AclEntity;
diff --git a/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/NTableControllerTest.java b/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/NTableControllerTest.java
index ad10f6f199..1f0e6aa271 100644
--- a/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/NTableControllerTest.java
+++ b/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/NTableControllerTest.java
@@ -29,7 +29,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.NLocalFileMetadataTestCase;
diff --git a/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/NUserControllerTest.java b/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/NUserControllerTest.java
index 49359f2f18..4103ea9df2 100644
--- a/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/NUserControllerTest.java
+++ b/src/metadata-server/src/test/java/org/apache/kylin/rest/controller/NUserControllerTest.java
@@ -36,7 +36,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.Message;
 import org.apache.kylin.common.util.JsonUtil;
diff --git a/src/modeling-service/src/main/java/org/apache/kylin/rest/model/FuzzyKeySearcher.java b/src/modeling-service/src/main/java/org/apache/kylin/rest/model/FuzzyKeySearcher.java
index 5870223613..084a803613 100644
--- a/src/modeling-service/src/main/java/org/apache/kylin/rest/model/FuzzyKeySearcher.java
+++ b/src/modeling-service/src/main/java/org/apache/kylin/rest/model/FuzzyKeySearcher.java
@@ -21,7 +21,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.ComputedColumnDesc;
 import org.apache.kylin.metadata.model.NDataModel;
diff --git a/src/modeling-service/src/main/java/org/apache/kylin/rest/response/SynchronizedCommentsResponse.java b/src/modeling-service/src/main/java/org/apache/kylin/rest/response/SynchronizedCommentsResponse.java
index 3ec10cc795..90d2148403 100644
--- a/src/modeling-service/src/main/java/org/apache/kylin/rest/response/SynchronizedCommentsResponse.java
+++ b/src/modeling-service/src/main/java/org/apache/kylin/rest/response/SynchronizedCommentsResponse.java
@@ -29,7 +29,7 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.model.ColumnDesc;
 import org.apache.kylin.metadata.model.FunctionDesc;
diff --git a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/AbstractModelService.java b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/AbstractModelService.java
index b46314b2e1..4f3781c404 100644
--- a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/AbstractModelService.java
+++ b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/AbstractModelService.java
@@ -28,7 +28,7 @@ import static org.apache.kylin.common.exception.code.ErrorCodeServer.MODEL_NOT_E
 import java.util.Arrays;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
 import org.apache.kylin.metadata.acl.AclTCRManager;
diff --git a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/FusionModelService.java b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/FusionModelService.java
index d4ebbbe964..2d68ea7de1 100644
--- a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/FusionModelService.java
+++ b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/FusionModelService.java
@@ -21,7 +21,7 @@ package org.apache.kylin.rest.service;
 import java.util.List;
 import java.util.Locale;
 
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.exception.ServerErrorCode;
diff --git a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/IndexPlanService.java b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/IndexPlanService.java
index 62d597daf5..1b9e681ef6 100644
--- a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/IndexPlanService.java
+++ b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/IndexPlanService.java
@@ -42,7 +42,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.SegmentOnlineMode;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelSemanticHelper.java b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelSemanticHelper.java
index 725d3994f6..b7a21eb955 100644
--- a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelSemanticHelper.java
+++ b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelSemanticHelper.java
@@ -41,7 +41,7 @@ import org.apache.calcite.sql.SqlNode;
 import org.apache.calcite.sql.dialect.HiveSqlDialect;
 import org.apache.calcite.sql.util.SqlVisitor;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.CommonErrorCode;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelService.java b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelService.java
index d83c15c751..ba966e6d28 100644
--- a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelService.java
+++ b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/ModelService.java
@@ -103,8 +103,8 @@ import org.apache.calcite.sql.util.SqlVisitor;
 import org.apache.calcite.util.Util;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/modeling-service/src/main/java/org/apache/kylin/rest/util/ModelUtils.java b/src/modeling-service/src/main/java/org/apache/kylin/rest/util/ModelUtils.java
index 631de90ba6..0b38bbebfc 100644
--- a/src/modeling-service/src/main/java/org/apache/kylin/rest/util/ModelUtils.java
+++ b/src/modeling-service/src/main/java/org/apache/kylin/rest/util/ModelUtils.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.util.DateFormat;
diff --git a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/BaseIndexTest.java b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/BaseIndexTest.java
index 10cfed3766..928c903239 100644
--- a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/BaseIndexTest.java
+++ b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/BaseIndexTest.java
@@ -29,7 +29,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.execution.AbstractExecutable;
 import org.apache.kylin.metadata.cube.model.IndexEntity;
diff --git a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/FusionModelServiceTest.java b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/FusionModelServiceTest.java
index a75c4a84e6..8cbb4be88e 100644
--- a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/FusionModelServiceTest.java
+++ b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/FusionModelServiceTest.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.transaction.UnitOfWork;
 import org.apache.kylin.common.scheduler.EventBusFactory;
diff --git a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
index 3e585b7392..9c8293e8b9 100644
--- a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
+++ b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/ModelServiceTest.java
@@ -84,9 +84,9 @@ import org.apache.calcite.sql.SqlKind;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang.RandomStringUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateUtils;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/TableServiceTest.java b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/TableServiceTest.java
index 4f47d6cc3c..5864a7e5de 100644
--- a/src/modeling-service/src/test/java/org/apache/kylin/rest/service/TableServiceTest.java
+++ b/src/modeling-service/src/test/java/org/apache/kylin/rest/service/TableServiceTest.java
@@ -46,7 +46,7 @@ import java.util.stream.Collectors;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/query-common/src/main/java/org/apache/kylin/query/routing/RealizationChooser.java b/src/query-common/src/main/java/org/apache/kylin/query/routing/RealizationChooser.java
index 21908533a2..d4f70edd52 100644
--- a/src/query-common/src/main/java/org/apache/kylin/query/routing/RealizationChooser.java
+++ b/src/query-common/src/main/java/org/apache/kylin/query/routing/RealizationChooser.java
@@ -59,7 +59,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
 import org.apache.kylin.common.exception.KylinTimeoutException;
diff --git a/src/query-common/src/main/java/org/apache/kylin/query/schema/OLAPTable.java b/src/query-common/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
index 7aa18f093b..ff3ba69038 100644
--- a/src/query-common/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
+++ b/src/query-common/src/main/java/org/apache/kylin/query/schema/OLAPTable.java
@@ -51,7 +51,7 @@ import org.apache.calcite.sql.type.SqlTypeName;
 import org.apache.calcite.sql.type.SqlTypeUtil;
 import org.apache.calcite.util.ImmutableBitSet;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
 import org.apache.kylin.common.util.CollectionUtil;
diff --git a/src/query-common/src/main/java/org/apache/kylin/query/security/AccessDeniedException.java b/src/query-common/src/main/java/org/apache/kylin/query/security/AccessDeniedException.java
index 3ab1bff212..e45418c05c 100644
--- a/src/query-common/src/main/java/org/apache/kylin/query/security/AccessDeniedException.java
+++ b/src/query-common/src/main/java/org/apache/kylin/query/security/AccessDeniedException.java
@@ -20,7 +20,7 @@ package org.apache.kylin.query.security;
 
 import java.util.Set;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 public class AccessDeniedException extends RuntimeException {
     public AccessDeniedException(String s) {
diff --git a/src/query-common/src/main/java/org/apache/kylin/query/security/RowFilter.java b/src/query-common/src/main/java/org/apache/kylin/query/security/RowFilter.java
index bb5525a3a7..f0695d63e2 100644
--- a/src/query-common/src/main/java/org/apache/kylin/query/security/RowFilter.java
+++ b/src/query-common/src/main/java/org/apache/kylin/query/security/RowFilter.java
@@ -38,7 +38,7 @@ import org.apache.calcite.sql.SqlNodeList;
 import org.apache.calcite.sql.SqlSelect;
 import org.apache.calcite.sql.parser.SqlParseException;
 import org.apache.calcite.sql.util.SqlBasicVisitor;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang.text.StrBuilder;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
diff --git a/src/query-common/src/main/java/org/apache/kylin/query/util/AsyncQueryUtil.java b/src/query-common/src/main/java/org/apache/kylin/query/util/AsyncQueryUtil.java
index 09e05a4e53..e05d0e003e 100644
--- a/src/query-common/src/main/java/org/apache/kylin/query/util/AsyncQueryUtil.java
+++ b/src/query-common/src/main/java/org/apache/kylin/query/util/AsyncQueryUtil.java
@@ -26,7 +26,7 @@ import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
diff --git a/src/query-common/src/main/java/org/apache/kylin/query/util/ModelViewSqlNodeComparator.java b/src/query-common/src/main/java/org/apache/kylin/query/util/ModelViewSqlNodeComparator.java
index b29c2ea48e..6791a6e3d7 100644
--- a/src/query-common/src/main/java/org/apache/kylin/query/util/ModelViewSqlNodeComparator.java
+++ b/src/query-common/src/main/java/org/apache/kylin/query/util/ModelViewSqlNodeComparator.java
@@ -19,7 +19,7 @@
 package org.apache.kylin.query.util;
 
 import org.apache.calcite.sql.SqlIdentifier;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.metadata.model.NDataModel;
 import org.apache.kylin.metadata.model.alias.ExpressionComparator;
 
diff --git a/src/query-common/src/main/java/org/apache/kylin/query/util/PushDownUtil.java b/src/query-common/src/main/java/org/apache/kylin/query/util/PushDownUtil.java
index 4707d9406a..ddbca4afbe 100644
--- a/src/query-common/src/main/java/org/apache/kylin/query/util/PushDownUtil.java
+++ b/src/query-common/src/main/java/org/apache/kylin/query/util/PushDownUtil.java
@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
 import javax.ws.rs.BadRequestException;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/query-common/src/main/java/org/apache/kylin/query/util/QueryAliasMatcher.java b/src/query-common/src/main/java/org/apache/kylin/query/util/QueryAliasMatcher.java
index 8cc71a523c..f5940b6dfb 100644
--- a/src/query-common/src/main/java/org/apache/kylin/query/util/QueryAliasMatcher.java
+++ b/src/query-common/src/main/java/org/apache/kylin/query/util/QueryAliasMatcher.java
@@ -41,7 +41,7 @@ import org.apache.calcite.sql.SqlSelect;
 import org.apache.calcite.sql.dialect.CalciteSqlDialect;
 import org.apache.calcite.sql.util.SqlBasicVisitor;
 import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.KylinConfigExt;
 import org.apache.kylin.common.util.Pair;
diff --git a/src/query-server/src/main/java/org/apache/kylin/rest/controller/NAsyncQueryController.java b/src/query-server/src/main/java/org/apache/kylin/rest/controller/NAsyncQueryController.java
index 8db117d415..8f84c63ddf 100644
--- a/src/query-server/src/main/java/org/apache/kylin/rest/controller/NAsyncQueryController.java
+++ b/src/query-server/src/main/java/org/apache/kylin/rest/controller/NAsyncQueryController.java
@@ -36,7 +36,7 @@ import java.util.concurrent.atomic.AtomicReference;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/query-server/src/main/java/org/apache/kylin/rest/controller/NQueryController.java b/src/query-server/src/main/java/org/apache/kylin/rest/controller/NQueryController.java
index 35e2f9f86f..ea088d38a8 100644
--- a/src/query-server/src/main/java/org/apache/kylin/rest/controller/NQueryController.java
+++ b/src/query-server/src/main/java/org/apache/kylin/rest/controller/NQueryController.java
@@ -44,7 +44,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.ForceToTieredStorage;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
diff --git a/src/query-server/src/test/java/org/apache/kylin/rest/controller/SparkMetricsControllerTest.java b/src/query-server/src/test/java/org/apache/kylin/rest/controller/SparkMetricsControllerTest.java
index dc0833d0b6..17e71a374a 100644
--- a/src/query-server/src/test/java/org/apache/kylin/rest/controller/SparkMetricsControllerTest.java
+++ b/src/query-server/src/test/java/org/apache/kylin/rest/controller/SparkMetricsControllerTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.rest.controller;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.rest.service.MonitorService;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/response/SQLResponseV2.java b/src/query-service/src/main/java/org/apache/kylin/rest/response/SQLResponseV2.java
index 7b93919c66..f9343ecf58 100644
--- a/src/query-service/src/main/java/org/apache/kylin/rest/response/SQLResponseV2.java
+++ b/src/query-service/src/main/java/org/apache/kylin/rest/response/SQLResponseV2.java
@@ -23,7 +23,7 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.QueryContext;
 import org.apache.kylin.metadata.querymeta.SelectedColumnMeta;
 import org.slf4j.Logger;
diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/service/ModelQueryService.java b/src/query-service/src/main/java/org/apache/kylin/rest/service/ModelQueryService.java
index ab70cdc64f..09b3c25d26 100644
--- a/src/query-service/src/main/java/org/apache/kylin/rest/service/ModelQueryService.java
+++ b/src/query-service/src/main/java/org/apache/kylin/rest/service/ModelQueryService.java
@@ -30,7 +30,7 @@ import java.util.Set;
 import java.util.function.BiConsumer;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.cube.model.NDataflow;
 import org.apache.kylin.metadata.cube.model.NDataflowManager;
diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/service/MonitorService.java b/src/query-service/src/main/java/org/apache/kylin/rest/service/MonitorService.java
index d1c3e60617..d90adc90ee 100644
--- a/src/query-service/src/main/java/org/apache/kylin/rest/service/MonitorService.java
+++ b/src/query-service/src/main/java/org/apache/kylin/rest/service/MonitorService.java
@@ -27,7 +27,7 @@ import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.cluster.ClusterManagerFactory;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryHistoryService.java b/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryHistoryService.java
index 7479631821..53520b65e4 100644
--- a/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryHistoryService.java
+++ b/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryHistoryService.java
@@ -40,7 +40,7 @@ import java.util.stream.Collectors;
 
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryService.java b/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryService.java
index bd6c676374..846e7b6260 100644
--- a/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryService.java
+++ b/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryService.java
@@ -55,7 +55,7 @@ import org.apache.calcite.sql.parser.SqlParseException;
 import org.apache.calcite.sql.pretty.SqlPrettyWriter;
 import org.apache.calcite.sql.validate.SqlValidatorException;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.kylin.common.ForceToTieredStorage;
 import org.apache.kylin.common.KapConfig;
diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryCacheSignatureUtil.java b/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryCacheSignatureUtil.java
index 058867993b..81b68e074c 100644
--- a/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryCacheSignatureUtil.java
+++ b/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryCacheSignatureUtil.java
@@ -22,7 +22,7 @@ import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.cube.model.NDataSegment;
 import org.apache.kylin.metadata.cube.model.NDataflowManager;
diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryUtils.java b/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryUtils.java
index a9aba9cad5..0c922b603e 100644
--- a/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryUtils.java
+++ b/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryUtils.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.rest.util;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
 import org.apache.kylin.common.util.Pair;
diff --git a/src/query/src/main/java/org/apache/kylin/query/engine/AsyncQueryApplication.java b/src/query/src/main/java/org/apache/kylin/query/engine/AsyncQueryApplication.java
index 01fdf5e3ab..b36ccf4e92 100644
--- a/src/query/src/main/java/org/apache/kylin/query/engine/AsyncQueryApplication.java
+++ b/src/query/src/main/java/org/apache/kylin/query/engine/AsyncQueryApplication.java
@@ -28,7 +28,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.QueryContext;
 import org.apache.kylin.common.util.JsonUtil;
diff --git a/src/query/src/main/java/org/apache/kylin/query/engine/AsyncQueryJob.java b/src/query/src/main/java/org/apache/kylin/query/engine/AsyncQueryJob.java
index c8c5aebe48..236b11a022 100644
--- a/src/query/src/main/java/org/apache/kylin/query/engine/AsyncQueryJob.java
+++ b/src/query/src/main/java/org/apache/kylin/query/engine/AsyncQueryJob.java
@@ -24,7 +24,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.KylinConfigExt;
diff --git a/src/query/src/test/java/org/apache/kylin/query/engine/view/ModelViewTest.java b/src/query/src/test/java/org/apache/kylin/query/engine/view/ModelViewTest.java
index 920bfebe8c..73af7b7de7 100644
--- a/src/query/src/test/java/org/apache/kylin/query/engine/view/ModelViewTest.java
+++ b/src/query/src/test/java/org/apache/kylin/query/engine/view/ModelViewTest.java
@@ -28,7 +28,7 @@ import java.util.LinkedHashMap;
 import org.apache.calcite.schema.impl.ViewTable;
 import org.apache.calcite.sql.parser.SqlParseException;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.NLocalFileMetadataTestCase;
 import org.apache.kylin.metadata.cube.model.IndexPlan;
diff --git a/src/query/src/test/java/org/apache/kylin/query/schema/KylinSqlValidatorTest.java b/src/query/src/test/java/org/apache/kylin/query/schema/KylinSqlValidatorTest.java
index 93c24774b4..80e90d0f0a 100644
--- a/src/query/src/test/java/org/apache/kylin/query/schema/KylinSqlValidatorTest.java
+++ b/src/query/src/test/java/org/apache/kylin/query/schema/KylinSqlValidatorTest.java
@@ -27,7 +27,7 @@ import java.nio.file.Files;
 import org.apache.calcite.rel.RelNode;
 import org.apache.calcite.sql.parser.SqlParseException;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.realization.RealizationStatusEnum;
 import org.apache.kylin.common.util.NLocalFileMetadataTestCase;
diff --git a/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/ClickHouseStorage.java b/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/ClickHouseStorage.java
index 9e5c578127..1567bdec0e 100644
--- a/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/ClickHouseStorage.java
+++ b/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/ClickHouseStorage.java
@@ -28,7 +28,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.ClickHouseConfig;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.job.SecondStorageStepFactory;
diff --git a/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickHouse.java b/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickHouse.java
index 9822425ff8..8ac02bea48 100644
--- a/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickHouse.java
+++ b/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickHouse.java
@@ -18,6 +18,13 @@
 
 package io.kyligence.kap.clickhouse.job;
 
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
+import lombok.val;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.apache.kylin.common.KylinConfig;
+
 import java.io.Closeable;
 import java.sql.Connection;
 import java.sql.Date;
@@ -38,14 +45,6 @@ import java.util.Objects;
 import java.util.Properties;
 import java.util.function.Function;
 
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.apache.kylin.common.KylinConfig;
-
-import lombok.Getter;
-import lombok.val;
-import lombok.extern.slf4j.Slf4j;
-
 @Slf4j
 @Getter
 public class ClickHouse implements Closeable {
diff --git a/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickHouseLoad.java b/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickHouseLoad.java
index ac3f1e9a97..150d989209 100644
--- a/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickHouseLoad.java
+++ b/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickHouseLoad.java
@@ -47,7 +47,7 @@ import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickhouseLoadFileLoad.java b/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickhouseLoadFileLoad.java
index 431f583b40..4145a9108f 100644
--- a/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickhouseLoadFileLoad.java
+++ b/src/second-storage/clickhouse/src/main/java/io/kyligence/kap/clickhouse/job/ClickhouseLoadFileLoad.java
@@ -21,7 +21,7 @@ package io.kyligence.kap.clickhouse.job;
 import java.sql.SQLException;
 import java.util.concurrent.TimeUnit;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 
 import io.kyligence.kap.clickhouse.ddl.ClickHouseCreateTable;
diff --git a/src/second-storage/clickhouse/src/test/java/io/kyligence/kap/clickhouse/job/HadoopMockUtil.java b/src/second-storage/clickhouse/src/test/java/io/kyligence/kap/clickhouse/job/HadoopMockUtil.java
index fd9006406a..8d91f0e857 100644
--- a/src/second-storage/clickhouse/src/test/java/io/kyligence/kap/clickhouse/job/HadoopMockUtil.java
+++ b/src/second-storage/clickhouse/src/test/java/io/kyligence/kap/clickhouse/job/HadoopMockUtil.java
@@ -21,7 +21,7 @@ package io.kyligence.kap.clickhouse.job;
 
 import java.util.Map;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.mockito.Mockito;
diff --git a/src/second-storage/core-ui/src/main/java/io/kyligence/kap/secondstorage/management/OpenSecondStorageEndpoint.java b/src/second-storage/core-ui/src/main/java/io/kyligence/kap/secondstorage/management/OpenSecondStorageEndpoint.java
index c6a89603d8..ec06ef3cc4 100644
--- a/src/second-storage/core-ui/src/main/java/io/kyligence/kap/secondstorage/management/OpenSecondStorageEndpoint.java
+++ b/src/second-storage/core-ui/src/main/java/io/kyligence/kap/secondstorage/management/OpenSecondStorageEndpoint.java
@@ -27,7 +27,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/second-storage/core-ui/src/main/java/io/kyligence/kap/secondstorage/management/SecondStorageEndpoint.java b/src/second-storage/core-ui/src/main/java/io/kyligence/kap/secondstorage/management/SecondStorageEndpoint.java
index 1d1a9287c9..b67e565d99 100644
--- a/src/second-storage/core-ui/src/main/java/io/kyligence/kap/secondstorage/management/SecondStorageEndpoint.java
+++ b/src/second-storage/core-ui/src/main/java/io/kyligence/kap/secondstorage/management/SecondStorageEndpoint.java
@@ -34,7 +34,7 @@ import java.util.Map;
 import java.util.Objects;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/ddl/DDL.java b/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/ddl/DDL.java
index 087673da05..997b981960 100644
--- a/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/ddl/DDL.java
+++ b/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/ddl/DDL.java
@@ -18,7 +18,7 @@
 package io.kyligence.kap.secondstorage.ddl;
 import io.kyligence.kap.secondstorage.ddl.visitor.DefaultSQLRender;
 import io.kyligence.kap.secondstorage.ddl.visitor.Renderable;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 public abstract class DDL<T extends DDL<T>> implements Renderable {
 
diff --git a/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/ddl/exp/TableIdentifier.java b/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/ddl/exp/TableIdentifier.java
index f8c007dd34..dbb7cc119c 100644
--- a/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/ddl/exp/TableIdentifier.java
+++ b/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/ddl/exp/TableIdentifier.java
@@ -19,7 +19,7 @@ package io.kyligence.kap.secondstorage.ddl.exp;
 
 import io.kyligence.kap.secondstorage.ddl.visitor.RenderVisitor;
 import io.kyligence.kap.secondstorage.ddl.visitor.Renderable;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 public class TableIdentifier implements Renderable {
     public static final char TABLE_ESCAPE = '`';
diff --git a/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/metadata/Manager.java b/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/metadata/Manager.java
index 25c5b7ba90..ce2bb65bd4 100644
--- a/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/metadata/Manager.java
+++ b/src/second-storage/core/src/main/java/io/kyligence/kap/secondstorage/metadata/Manager.java
@@ -24,7 +24,7 @@ import java.util.function.Supplier;
 
 import javax.annotation.concurrent.NotThreadSafe;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
diff --git a/src/server/src/main/java/org/apache/kylin/rest/QueryNodeFilter.java b/src/server/src/main/java/org/apache/kylin/rest/QueryNodeFilter.java
index 2af787aaf7..eb209b2a56 100644
--- a/src/server/src/main/java/org/apache/kylin/rest/QueryNodeFilter.java
+++ b/src/server/src/main/java/org/apache/kylin/rest/QueryNodeFilter.java
@@ -42,7 +42,7 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.ErrorCode;
 import org.apache.kylin.common.exception.KylinException;
diff --git a/src/server/src/main/java/org/apache/kylin/rest/ZookeeperClusterManager.java b/src/server/src/main/java/org/apache/kylin/rest/ZookeeperClusterManager.java
index cfa593dca9..29b286fce4 100644
--- a/src/server/src/main/java/org/apache/kylin/rest/ZookeeperClusterManager.java
+++ b/src/server/src/main/java/org/apache/kylin/rest/ZookeeperClusterManager.java
@@ -24,7 +24,7 @@ import java.util.List;
 
 import javax.annotation.Nullable;
 
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.kylin.rest.cluster.ClusterManager;
 import org.apache.kylin.rest.discovery.KylinServiceDiscoveryCache;
 import org.apache.kylin.rest.discovery.KylinServiceDiscoveryClient;
diff --git a/src/server/src/main/java/org/apache/kylin/rest/config/CorsConfig.java b/src/server/src/main/java/org/apache/kylin/rest/config/CorsConfig.java
index eb24c3136a..8c56cf07c6 100644
--- a/src/server/src/main/java/org/apache/kylin/rest/config/CorsConfig.java
+++ b/src/server/src/main/java/org/apache/kylin/rest/config/CorsConfig.java
@@ -17,7 +17,7 @@
  */
 package org.apache.kylin.rest.config;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
diff --git a/src/server/src/main/java/org/apache/kylin/rest/discovery/KylinServiceDiscoveryCache.java b/src/server/src/main/java/org/apache/kylin/rest/discovery/KylinServiceDiscoveryCache.java
index 1fa3b8857d..e49696c18b 100644
--- a/src/server/src/main/java/org/apache/kylin/rest/discovery/KylinServiceDiscoveryCache.java
+++ b/src/server/src/main/java/org/apache/kylin/rest/discovery/KylinServiceDiscoveryCache.java
@@ -35,8 +35,8 @@ import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.curator.framework.CuratorFramework;
 import org.apache.curator.framework.state.ConnectionState;
 import org.apache.curator.x.discovery.ServiceCache;
diff --git a/src/server/src/main/java/org/apache/kylin/rest/discovery/KylinServiceDiscoveryClient.java b/src/server/src/main/java/org/apache/kylin/rest/discovery/KylinServiceDiscoveryClient.java
index aa7f50b9de..f9a32e74f9 100644
--- a/src/server/src/main/java/org/apache/kylin/rest/discovery/KylinServiceDiscoveryClient.java
+++ b/src/server/src/main/java/org/apache/kylin/rest/discovery/KylinServiceDiscoveryClient.java
@@ -27,7 +27,7 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang3.ArrayUtils;
 import org.apache.kylin.rest.response.ServerInfoResponse;
 import org.springframework.cloud.client.serviceregistry.Registration;
 import org.springframework.cloud.zookeeper.ConditionalOnZookeeperEnabled;
diff --git a/src/source-hive/src/test/java/org/apache/kylin/source/hive/BeelineOptionsProcessorTest.java b/src/source-hive/src/test/java/org/apache/kylin/source/hive/BeelineOptionsProcessorTest.java
index 3a21dfc1eb..4c34d2d259 100644
--- a/src/source-hive/src/test/java/org/apache/kylin/source/hive/BeelineOptionsProcessorTest.java
+++ b/src/source-hive/src/test/java/org/apache/kylin/source/hive/BeelineOptionsProcessorTest.java
@@ -19,7 +19,7 @@
 package org.apache.kylin.source.hive;
 
 import org.apache.commons.cli.CommandLine;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.junit.Ignore;
 import org.junit.Test;
 
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/application/SparkApplication.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/application/SparkApplication.java
index 7239720986..db9c31c9b0 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/application/SparkApplication.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/application/SparkApplication.java
@@ -40,7 +40,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.concurrent.atomic.AtomicReference;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FileSystem;
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/DefaultSparkBuildJobHandler.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/DefaultSparkBuildJobHandler.java
index 4aff2c7b55..100ce5a0be 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/DefaultSparkBuildJobHandler.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/DefaultSparkBuildJobHandler.java
@@ -30,7 +30,7 @@ import java.util.Objects;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/ExecutableAddCuboidHandler.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/ExecutableAddCuboidHandler.java
index 84db20987f..0f1b68cd2d 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/ExecutableAddCuboidHandler.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/ExecutableAddCuboidHandler.java
@@ -20,7 +20,7 @@ package org.apache.kylin.engine.spark.job;
 
 import com.google.common.base.Preconditions;
 import lombok.val;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.engine.spark.merger.AfterBuildResourceMerger;
 import org.apache.kylin.job.execution.DefaultExecutableOnModel;
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/NSparkExecutable.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/NSparkExecutable.java
index 20a502ff9a..4370252206 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/NSparkExecutable.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/NSparkExecutable.java
@@ -237,7 +237,7 @@ public class NSparkExecutable extends AbstractExecutable implements ChainedStage
         if (StringUtils.isEmpty(kylinJobJar) && !config.isUTEnv()) {
             throw new RuntimeException("Missing kylin job jar");
         }
-        if (!config.isUTEnv()) {
+        if (!config.isDevOrUT()) {
             sparkJobHandler.checkApplicationJar(config);
         }
 
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/SparkCleanupTransactionalTableStep.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/SparkCleanupTransactionalTableStep.java
index 10974b82eb..20d0986e7f 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/SparkCleanupTransactionalTableStep.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/job/SparkCleanupTransactionalTableStep.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.engine.spark.job;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/mockup/CsvSource.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/mockup/CsvSource.java
index c0be9c5f69..ec0f7229d5 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/mockup/CsvSource.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/mockup/CsvSource.java
@@ -27,7 +27,7 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.JsonUtil;
 import org.apache.kylin.common.util.Pair;
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/mockup/CsvTableReader.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/mockup/CsvTableReader.java
index 9a11d1e29b..959562ca1f 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/mockup/CsvTableReader.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/mockup/CsvTableReader.java
@@ -22,7 +22,7 @@ import java.io.IOException;
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.source.IReadableTable;
 
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/source/NSparkDataSource.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/source/NSparkDataSource.java
index 6a501bc71e..61882f3dcb 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/source/NSparkDataSource.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/source/NSparkDataSource.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.engine.spark.source;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.model.IBuildable;
 import org.apache.kylin.metadata.model.SegmentRange;
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/source/NSparkMetadataExplorer.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/source/NSparkMetadataExplorer.java
index c037c37bfe..cf9508dec6 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/source/NSparkMetadataExplorer.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/source/NSparkMetadataExplorer.java
@@ -29,7 +29,7 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/stats/analyzer/TableAnalyzerJob.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/stats/analyzer/TableAnalyzerJob.java
index 25ef403501..a17bcf5997 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/stats/analyzer/TableAnalyzerJob.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/stats/analyzer/TableAnalyzerJob.java
@@ -21,7 +21,7 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 import lombok.val;
 import lombok.var;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.Path;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.transaction.UnitOfWork;
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/stats/utils/DateTimeCheckUtils.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/stats/utils/DateTimeCheckUtils.java
index 46ea5acf79..468379c723 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/stats/utils/DateTimeCheckUtils.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/stats/utils/DateTimeCheckUtils.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.engine.spark.stats.utils;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 
 public class DateTimeCheckUtils {
 
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/utils/HiveTransactionTableHelper.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/utils/HiveTransactionTableHelper.java
index 5a65f573d5..6810e58828 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/utils/HiveTransactionTableHelper.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/utils/HiveTransactionTableHelper.java
@@ -27,7 +27,7 @@ import java.util.Map;
 import java.util.Objects;
 
 import org.apache.commons.lang.StringEscapeUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.permission.FsPermission;
diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/utils/SparkJobFactoryUtils.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/utils/SparkJobFactoryUtils.java
index 8f9c7223c3..9a666dee30 100644
--- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/utils/SparkJobFactoryUtils.java
+++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/utils/SparkJobFactoryUtils.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.engine.spark.utils;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.engine.spark.job.NSparkCubingJob;
 import org.apache.kylin.engine.spark.job.NSparkCubingStep;
 import org.apache.kylin.engine.spark.job.NSparkMergingJob;
diff --git a/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentBuildJob.java b/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentBuildJob.java
index 6bbf5217c7..e3c930c883 100644
--- a/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentBuildJob.java
+++ b/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentBuildJob.java
@@ -22,7 +22,7 @@ import com.google.common.base.Throwables;
 import com.google.common.collect.Lists;
 import lombok.extern.slf4j.Slf4j;
 import lombok.val;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.kylin.common.KylinConfig;
diff --git a/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentMergeJob.java b/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentMergeJob.java
index 08cc585aba..9bb9e12999 100644
--- a/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentMergeJob.java
+++ b/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SegmentMergeJob.java
@@ -20,7 +20,7 @@ package org.apache.kylin.engine.spark.job;
 
 import com.google.common.base.Throwables;
 import lombok.val;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.engine.spark.job.exec.MergeExec;
 import org.apache.kylin.engine.spark.job.stage.BuildParam;
diff --git a/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SnapshotBuildJob.java b/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SnapshotBuildJob.java
index b1f4e13477..2202493c0c 100644
--- a/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SnapshotBuildJob.java
+++ b/src/spark-project/engine-spark/src/main/scala/org/apache/kylin/engine/spark/job/SnapshotBuildJob.java
@@ -22,7 +22,7 @@ import com.google.common.base.Throwables;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Sets;
 import lombok.val;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
diff --git a/src/spark-project/source-jdbc/src/main/java/org/apache/kylin/source/jdbc/JdbcSource.java b/src/spark-project/source-jdbc/src/main/java/org/apache/kylin/source/jdbc/JdbcSource.java
index 4c49a82a00..55de85c6a2 100644
--- a/src/spark-project/source-jdbc/src/main/java/org/apache/kylin/source/jdbc/JdbcSource.java
+++ b/src/spark-project/source-jdbc/src/main/java/org/apache/kylin/source/jdbc/JdbcSource.java
@@ -21,7 +21,7 @@ import static org.apache.kylin.common.exception.ServerErrorCode.INVALID_JDBC_SOU
 
 import java.io.IOException;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.msg.MsgPicker;
diff --git a/src/spark-project/spark-common/src/main/scala/org/apache/kylin/engine/spark/job/NSparkCubingUtil.java b/src/spark-project/spark-common/src/main/scala/org/apache/kylin/engine/spark/job/NSparkCubingUtil.java
index 045850a7ef..c22178e9d7 100644
--- a/src/spark-project/spark-common/src/main/scala/org/apache/kylin/engine/spark/job/NSparkCubingUtil.java
+++ b/src/spark-project/spark-common/src/main/scala/org/apache/kylin/engine/spark/job/NSparkCubingUtil.java
@@ -28,7 +28,7 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 import org.apache.calcite.avatica.util.Quoting;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.util.StringSplitter;
 import org.apache.kylin.metadata.cube.model.IndexPlan;
diff --git a/src/spark-project/spark-common/src/main/scala/org/apache/spark/dict/NGlobalDictHDFSStore.java b/src/spark-project/spark-common/src/main/scala/org/apache/spark/dict/NGlobalDictHDFSStore.java
index db09039892..3034b2e8bc 100644
--- a/src/spark-project/spark-common/src/main/scala/org/apache/spark/dict/NGlobalDictHDFSStore.java
+++ b/src/spark-project/spark-common/src/main/scala/org/apache/spark/dict/NGlobalDictHDFSStore.java
@@ -22,7 +22,7 @@ import java.io.IOException;
 import java.nio.charset.Charset;
 import java.util.TreeSet;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FSDataOutputStream;
diff --git a/src/spark-project/spark-common/src/test/java/org/apache/kylin/common/asyncprofiler/AsyncProfilerToolTest.java b/src/spark-project/spark-common/src/test/java/org/apache/kylin/common/asyncprofiler/AsyncProfilerToolTest.java
index 2cdb832339..fe44575072 100644
--- a/src/spark-project/spark-common/src/test/java/org/apache/kylin/common/asyncprofiler/AsyncProfilerToolTest.java
+++ b/src/spark-project/spark-common/src/test/java/org/apache/kylin/common/asyncprofiler/AsyncProfilerToolTest.java
@@ -18,7 +18,7 @@
 
 package org.apache.kylin.common.asyncprofiler;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.NLocalFileMetadataTestCase;
 import org.junit.After;
 import org.junit.Assert;
diff --git a/src/streaming-service/src/main/java/org/apache/kylin/rest/service/StreamingJobService.java b/src/streaming-service/src/main/java/org/apache/kylin/rest/service/StreamingJobService.java
index 3658119bcd..01e80bbe0f 100644
--- a/src/streaming-service/src/main/java/org/apache/kylin/rest/service/StreamingJobService.java
+++ b/src/streaming-service/src/main/java/org/apache/kylin/rest/service/StreamingJobService.java
@@ -38,7 +38,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.ObjectUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.exception.ServerErrorCode;
diff --git a/src/streaming/src/main/java/org/apache/kylin/kafka/util/KafkaUtils.java b/src/streaming/src/main/java/org/apache/kylin/kafka/util/KafkaUtils.java
index 26bb14d07d..21eb10fe63 100644
--- a/src/streaming/src/main/java/org/apache/kylin/kafka/util/KafkaUtils.java
+++ b/src/streaming/src/main/java/org/apache/kylin/kafka/util/KafkaUtils.java
@@ -24,7 +24,7 @@ import java.nio.ByteBuffer;
 import java.util.Properties;
 
 import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kafka.clients.admin.AdminClient;
 import org.apache.kafka.clients.consumer.Consumer;
 import org.apache.kafka.clients.consumer.KafkaConsumer;
diff --git a/src/streaming/src/main/java/org/apache/kylin/streaming/jobs/AbstractSparkJobLauncher.java b/src/streaming/src/main/java/org/apache/kylin/streaming/jobs/AbstractSparkJobLauncher.java
index 5ebbf1fc5e..651d840caf 100644
--- a/src/streaming/src/main/java/org/apache/kylin/streaming/jobs/AbstractSparkJobLauncher.java
+++ b/src/streaming/src/main/java/org/apache/kylin/streaming/jobs/AbstractSparkJobLauncher.java
@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.HadoopUtil;
 import org.apache.kylin.job.execution.JobTypeEnum;
diff --git a/src/streaming/src/main/java/org/apache/kylin/streaming/manager/StreamingJobManager.java b/src/streaming/src/main/java/org/apache/kylin/streaming/manager/StreamingJobManager.java
index 0a8f8b1a20..777a4830f5 100644
--- a/src/streaming/src/main/java/org/apache/kylin/streaming/manager/StreamingJobManager.java
+++ b/src/streaming/src/main/java/org/apache/kylin/streaming/manager/StreamingJobManager.java
@@ -20,7 +20,7 @@ package org.apache.kylin.streaming.manager;
 
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
 import org.apache.kylin.job.constant.JobStatusEnum;
diff --git a/src/streaming/src/main/java/org/apache/kylin/streaming/rest/RestSupport.java b/src/streaming/src/main/java/org/apache/kylin/streaming/rest/RestSupport.java
index 21d34f0fba..55f4529422 100644
--- a/src/streaming/src/main/java/org/apache/kylin/streaming/rest/RestSupport.java
+++ b/src/streaming/src/main/java/org/apache/kylin/streaming/rest/RestSupport.java
@@ -23,7 +23,7 @@ import java.io.Closeable;
 import java.io.InputStream;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.http.HttpHeaders;
 import org.apache.http.HttpResponse;
 import org.apache.http.HttpStatus;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/AbstractInfoExtractorTool.java b/src/tool/src/main/java/org/apache/kylin/tool/AbstractInfoExtractorTool.java
index 8548fea87e..bcbc837fc5 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/AbstractInfoExtractorTool.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/AbstractInfoExtractorTool.java
@@ -58,7 +58,7 @@ import javax.xml.bind.DatatypeConverter;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KapConfig;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinTimeoutException;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/AuditLogTool.java b/src/tool/src/main/java/org/apache/kylin/tool/AuditLogTool.java
index 7c5a34915c..66c2d6ef29 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/AuditLogTool.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/AuditLogTool.java
@@ -45,7 +45,7 @@ import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.dbcp2.BasicDataSourceFactory;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.util.ExecutableApplication;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/ClickhouseDiagTool.java b/src/tool/src/main/java/org/apache/kylin/tool/ClickhouseDiagTool.java
index a03e2dfa00..5231b36c4b 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/ClickhouseDiagTool.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/ClickhouseDiagTool.java
@@ -29,8 +29,8 @@ import java.util.zip.GZIPInputStream;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.CliCommandExecutor;
 import org.apache.kylin.common.util.Pair;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/ConfTool.java b/src/tool/src/main/java/org/apache/kylin/tool/ConfTool.java
index 1c01adac45..852cc99a38 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/ConfTool.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/ConfTool.java
@@ -22,7 +22,7 @@ import java.nio.file.Files;
 import java.util.Set;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.tool.util.ToolUtil;
 import org.slf4j.Logger;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/DumpHadoopSystemProps.java b/src/tool/src/main/java/org/apache/kylin/tool/DumpHadoopSystemProps.java
index 862d5df713..4170bd766e 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/DumpHadoopSystemProps.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/DumpHadoopSystemProps.java
@@ -29,7 +29,7 @@ import java.util.Arrays;
 import java.util.Map;
 import java.util.TreeMap;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.RandomUtil;
 import org.apache.kylin.common.util.Unsafe;
 
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/JobDiagInfoTool.java b/src/tool/src/main/java/org/apache/kylin/tool/JobDiagInfoTool.java
index 2f47669fa5..17a43b59e3 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/JobDiagInfoTool.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/JobDiagInfoTool.java
@@ -33,7 +33,7 @@ import java.util.stream.Collectors;
 import com.google.common.collect.Sets;
 import org.apache.commons.cli.Option;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.exception.KylinRuntimeException;
 import org.apache.kylin.common.util.OptionsHelper;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/KylinLogTool.java b/src/tool/src/main/java/org/apache/kylin/tool/KylinLogTool.java
index 612e6dc7ce..3ef20b0bbf 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/KylinLogTool.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/KylinLogTool.java
@@ -46,7 +46,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/daemon/KapGuardian.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/KapGuardian.java
index fab7868269..a876d2a7fe 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/daemon/KapGuardian.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/daemon/KapGuardian.java
@@ -28,7 +28,7 @@ import java.util.stream.Collectors;
 
 import org.apache.calcite.avatica.util.Unsafe;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ClassUtil;
 import org.apache.kylin.common.util.ExecutorServiceUtil;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/obf/KylinConfObfuscator.java b/src/tool/src/main/java/org/apache/kylin/tool/obf/KylinConfObfuscator.java
index ff168842a8..9d9651a052 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/obf/KylinConfObfuscator.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/obf/KylinConfObfuscator.java
@@ -20,7 +20,7 @@ package org.apache.kylin.tool.obf;
 import java.util.Map;
 import java.util.Properties;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.StorageURL;
 import org.apache.kylin.tool.constant.SensitiveConfigKeysConstant;
 
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/CheckProjectModeCLI.java b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/CheckProjectModeCLI.java
index a68139a5ef..58ad2d14c7 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/CheckProjectModeCLI.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/CheckProjectModeCLI.java
@@ -30,7 +30,7 @@ import java.util.Locale;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ExecutableApplication;
 import org.apache.kylin.common.util.OptionsHelper;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/DeleteFavoriteQueryCLI.java b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/DeleteFavoriteQueryCLI.java
index bba14a41c2..54200f7b86 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/DeleteFavoriteQueryCLI.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/DeleteFavoriteQueryCLI.java
@@ -27,7 +27,7 @@ import java.util.Map;
 
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ExecutableApplication;
 import org.apache.kylin.common.util.OptionsHelper;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/RenameEntity.java b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/RenameEntity.java
index 11f3f22ce6..7ab86f3217 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/RenameEntity.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/RenameEntity.java
@@ -23,7 +23,7 @@ import java.io.DataOutputStream;
 import java.io.IOException;
 import java.util.Locale;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.JsonSerializer;
 import org.apache.kylin.common.persistence.RawResource;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/RenameUserResourceTool.java b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/RenameUserResourceTool.java
index 015fd590c8..657153367b 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/RenameUserResourceTool.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/RenameUserResourceTool.java
@@ -42,7 +42,7 @@ import java.util.stream.Collectors;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.Options;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.RawResource;
 import org.apache.kylin.common.persistence.ResourceStore;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateModelCLI.java b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateModelCLI.java
index 972967dc59..2569a75a7e 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateModelCLI.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateModelCLI.java
@@ -30,7 +30,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ExecutableApplication;
 import org.apache.kylin.common.util.OptionsHelper;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateProjectCLI.java b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateProjectCLI.java
index 42f560c163..ef8d821c0d 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateProjectCLI.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateProjectCLI.java
@@ -26,7 +26,7 @@ import java.util.Map;
 
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ExecutableApplication;
 import org.apache.kylin.common.util.OptionsHelper;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateSessionTableCLI.java b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateSessionTableCLI.java
index 12db92db95..586ffe5ac5 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateSessionTableCLI.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateSessionTableCLI.java
@@ -29,7 +29,7 @@ import javax.sql.DataSource;
 
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.util.ExecutableApplication;
 import org.apache.kylin.common.util.OptionsHelper;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateUserGroupCLI.java b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateUserGroupCLI.java
index 7b406da2cb..5859df7b10 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateUserGroupCLI.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/upgrade/UpdateUserGroupCLI.java
@@ -29,7 +29,7 @@ import java.util.List;
 import org.apache.commons.cli.Option;
 import org.apache.commons.cli.Options;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.exception.KylinException;
 import org.apache.kylin.common.util.ExecutableApplication;
 import org.apache.kylin.common.util.JsonUtil;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/util/HadoopConfExtractor.java b/src/tool/src/main/java/org/apache/kylin/tool/util/HadoopConfExtractor.java
index bc92f7f14c..9488669c27 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/util/HadoopConfExtractor.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/util/HadoopConfExtractor.java
@@ -21,7 +21,7 @@ package org.apache.kylin.tool.util;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.yarn.conf.HAUtil;
 import org.apache.hadoop.yarn.conf.YarnConfiguration;
diff --git a/src/tool/src/main/java/org/apache/kylin/tool/util/ServerInfoUtil.java b/src/tool/src/main/java/org/apache/kylin/tool/util/ServerInfoUtil.java
index 6a250bfddc..2047330b68 100644
--- a/src/tool/src/main/java/org/apache/kylin/tool/util/ServerInfoUtil.java
+++ b/src/tool/src/main/java/org/apache/kylin/tool/util/ServerInfoUtil.java
@@ -21,7 +21,7 @@ import java.io.File;
 import java.util.List;
 
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/tool/src/test/java/org/apache/kylin/tool/StorageCleanerTest.java b/src/tool/src/test/java/org/apache/kylin/tool/StorageCleanerTest.java
index 9315dcdb7c..5dca0c1680 100644
--- a/src/tool/src/test/java/org/apache/kylin/tool/StorageCleanerTest.java
+++ b/src/tool/src/test/java/org/apache/kylin/tool/StorageCleanerTest.java
@@ -27,7 +27,7 @@ import java.util.stream.Collectors;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.permission.FsPermission;
diff --git a/src/tool/src/test/java/org/apache/kylin/tool/garbage/SnapshotCleanerTest.java b/src/tool/src/test/java/org/apache/kylin/tool/garbage/SnapshotCleanerTest.java
index 634345c66b..90fd332091 100644
--- a/src/tool/src/test/java/org/apache/kylin/tool/garbage/SnapshotCleanerTest.java
+++ b/src/tool/src/test/java/org/apache/kylin/tool/garbage/SnapshotCleanerTest.java
@@ -21,7 +21,7 @@ package org.apache.kylin.tool.garbage;
 import java.util.Set;
 import java.util.stream.Collectors;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.metadata.model.TableDesc;
 import org.apache.kylin.common.persistence.transaction.UnitOfWork;
diff --git a/src/tool/src/test/java/org/apache/kylin/tool/general/CryptToolTest.java b/src/tool/src/test/java/org/apache/kylin/tool/general/CryptToolTest.java
index ab7dd8938a..714aa9b9c4 100644
--- a/src/tool/src/test/java/org/apache/kylin/tool/general/CryptToolTest.java
+++ b/src/tool/src/test/java/org/apache/kylin/tool/general/CryptToolTest.java
@@ -23,7 +23,7 @@ import java.io.PrintStream;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.Charset;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/src/tool/src/test/java/org/apache/kylin/tool/upgrade/RenameUserResourceToolTest.java b/src/tool/src/test/java/org/apache/kylin/tool/upgrade/RenameUserResourceToolTest.java
index 3219873a00..bfa47ef0aa 100644
--- a/src/tool/src/test/java/org/apache/kylin/tool/upgrade/RenameUserResourceToolTest.java
+++ b/src/tool/src/test/java/org/apache/kylin/tool/upgrade/RenameUserResourceToolTest.java
@@ -24,7 +24,7 @@ import java.io.InputStream;
 import java.nio.charset.Charset;
 import java.util.Locale;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.RawResource;
 import org.apache.kylin.common.persistence.ResourceStore;