This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-4.1
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.1 by this push:
new 170d6db4405 branch-4.1: [refactor](fe) Add fe-foundation module with
zero-dependency JDK-onlyutilities (#62638)
170d6db4405 is described below
commit 170d6db4405be6f80b1dc82f71c2c7c622f590f9
Author: Calvin Kirs <[email protected]>
AuthorDate: Sun May 10 10:29:45 2026 +0800
branch-4.1: [refactor](fe) Add fe-foundation module with zero-dependency
JDK-onlyutilities (#62638)
#61175
---
fe/fe-common/pom.xml | 4 +
fe/fe-core/pom.xml | 4 +
.../org/apache/doris/analysis/ArrayLiteral.java | 2 +-
.../org/apache/doris/analysis/BoolLiteral.java | 2 +-
.../java/org/apache/doris/analysis/BrokerDesc.java | 2 +-
.../java/org/apache/doris/analysis/CastExpr.java | 2 +-
.../org/apache/doris/analysis/DateLiteral.java | 2 +-
.../org/apache/doris/analysis/DecimalLiteral.java | 2 +-
.../main/java/org/apache/doris/analysis/Expr.java | 3 +-
.../org/apache/doris/analysis/FloatLiteral.java | 2 +-
.../org/apache/doris/analysis/IPv4Literal.java | 2 +-
.../org/apache/doris/analysis/IPv6Literal.java | 2 +-
.../org/apache/doris/analysis/JsonLiteral.java | 2 +-
.../org/apache/doris/analysis/LiteralExpr.java | 2 +-
.../java/org/apache/doris/analysis/MapLiteral.java | 2 +-
.../java/org/apache/doris/analysis/MaxLiteral.java | 2 +-
.../org/apache/doris/analysis/NullLiteral.java | 2 +-
.../org/apache/doris/analysis/PlaceHolderExpr.java | 2 +-
.../org/apache/doris/analysis/StringLiteral.java | 2 +-
.../org/apache/doris/analysis/StructLiteral.java | 2 +-
.../apache/doris/analysis/VarBinaryLiteral.java | 2 +-
.../org/apache/doris/common/util/LocationPath.java | 2 +-
.../org/apache/doris/common/util/PrintableMap.java | 2 +-
.../apache/doris/datasource/InternalCatalog.java | 2 +-
.../doris/datasource/hive/HMSTransaction.java | 2 +-
.../datasource/property/ConnectionProperties.java | 4 +-
.../metastore/AWSGlueMetaStoreBaseProperties.java | 6 +-
.../metastore/AbstractIcebergProperties.java | 2 +-
.../metastore/AbstractPaimonProperties.java | 2 +-
.../metastore/AliyunDLFBaseProperties.java | 8 +-
.../property/metastore/HMSBaseProperties.java | 6 +-
.../metastore/HiveGlueMetaStoreProperties.java | 2 +-
.../property/metastore/HiveHMSProperties.java | 2 +-
.../metastore/IcebergHMSMetaStoreProperties.java | 2 +-
.../metastore/IcebergJdbcMetaStoreProperties.java | 2 +-
.../property/metastore/IcebergRestProperties.java | 4 +-
.../metastore/PaimonHMSMetaStoreProperties.java | 2 +-
.../metastore/PaimonJdbcMetaStoreProperties.java | 2 +-
.../metastore/PaimonRestMetaStoreProperties.java | 4 +-
.../storage/AbstractS3CompatibleProperties.java | 4 +-
.../property/storage/AzureProperties.java | 4 +-
.../property/storage/AzurePropertyUtils.java | 2 +-
.../property/storage/BrokerProperties.java | 2 +-
.../datasource/property/storage/COSProperties.java | 2 +-
.../datasource/property/storage/GCSProperties.java | 2 +-
.../property/storage/HdfsProperties.java | 2 +-
.../property/storage/HdfsPropertiesUtils.java | 2 +-
.../property/storage/MinioProperties.java | 2 +-
.../datasource/property/storage/OBSProperties.java | 2 +-
.../property/storage/OSSHdfsProperties.java | 2 +-
.../datasource/property/storage/OSSProperties.java | 4 +-
.../property/storage/OzoneProperties.java | 2 +-
.../datasource/property/storage/S3Properties.java | 4 +-
.../property/storage/S3PropertyUtils.java | 2 +-
.../property/storage/StorageProperties.java | 4 +-
.../org/apache/doris/nereids/NereidsPlanner.java | 2 +-
.../org/apache/doris/nereids/StatementContext.java | 2 +-
.../nereids/trees/expressions/literal/Literal.java | 2 +-
.../trees/plans/commands/insert/InsertUtils.java | 2 +-
.../apache/doris/planner/GroupCommitPlanner.java | 2 +-
.../doris/planner/RuntimeFilterGenerator.java | 2 +-
.../java/org/apache/doris/qe/StmtExecutor.java | 2 +-
.../main/java/org/apache/doris/qe/VariableMgr.java | 2 +-
.../apache/doris/common/util/LocationPathTest.java | 2 +-
.../apache/doris/common/util/PathUtilsTest.java | 2 +
.../doris/common/util/SerializationUtilsTest.java | 2 +
.../datasource/iceberg/IcebergTransactionTest.java | 2 +-
.../property/ConnectorPropertiesUtilsTest.java | 2 +
.../doris/datasource/property/ParamRulesTest.java | 2 +
.../metastore/AliyunDLFBasePropertiesTest.java | 4 +-
.../IcebergAliyunDLFMetaStorePropertiesTest.java | 2 +-
.../property/storage/AzurePropertiesTest.java | 2 +-
.../property/storage/AzurePropertyUtilsTest.java | 2 +-
.../property/storage/COSPropertiesTest.java | 2 +-
.../property/storage/HdfsPropertiesTest.java | 2 +-
.../property/storage/HdfsPropertiesUtilsTest.java | 2 +-
.../storage/S3ConnectorPropertiesUtilsTest.java | 2 +-
.../trees/expressions/VarBinaryLiteralTest.java | 2 +-
.../apache/doris/planner/HiveTableSinkTest.java | 2 +-
fe/fe-foundation/DESIGN.md | 178 +++++++++++++++++++++
fe/fe-foundation/pom.xml | 78 +++++++++
.../doris/foundation/format}/FormatOptions.java | 2 +-
.../property/ConnectorPropertiesUtils.java | 24 +--
.../foundation}/property/ConnectorProperty.java | 2 +-
.../doris/foundation}/property/ParamRules.java | 2 +-
.../property}/StoragePropertiesException.java | 2 +-
.../apache/doris/foundation/type}/ResultOr.java | 2 +-
.../org/apache/doris/foundation}/util/BitUtil.java | 2 +-
.../doris/foundation}/util/ByteBufferUtil.java | 2 +-
.../apache/doris/foundation}/util/PathUtils.java | 2 +-
.../doris/foundation}/util/SerializationUtils.java | 2 +-
fe/pom.xml | 6 +
fs_brokers/cdc_client/build.sh | 2 +-
93 files changed, 392 insertions(+), 109 deletions(-)
diff --git a/fe/fe-common/pom.xml b/fe/fe-common/pom.xml
index b49e2d72895..9151f93a3cc 100644
--- a/fe/fe-common/pom.xml
+++ b/fe/fe-common/pom.xml
@@ -42,6 +42,10 @@ under the License.
</profile>
</profiles>
<dependencies>
+ <dependency>
+ <groupId>org.apache.doris</groupId>
+ <artifactId>fe-foundation</artifactId>
+ </dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
diff --git a/fe/fe-core/pom.xml b/fe/fe-core/pom.xml
index ea867eb4438..d9395d98956 100644
--- a/fe/fe-core/pom.xml
+++ b/fe/fe-core/pom.xml
@@ -82,6 +82,10 @@ under the License.
</profile>
</profiles>
<dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>fe-foundation</artifactId>
+ </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>fe-common</artifactId>
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArrayLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArrayLiteral.java
index a2d6464face..fc7685f1ec4 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/ArrayLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/ArrayLiteral.java
@@ -22,7 +22,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/BoolLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/BoolLiteral.java
index 17acc2b7c47..7332e1fde09 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/BoolLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/BoolLiteral.java
@@ -25,7 +25,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TBoolLiteral;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/BrokerDesc.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/BrokerDesc.java
index 2833cf977d3..1d2e231674e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/BrokerDesc.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/BrokerDesc.java
@@ -24,7 +24,7 @@ import org.apache.doris.common.io.Writable;
import org.apache.doris.common.util.PrintableMap;
import org.apache.doris.datasource.property.storage.BrokerProperties;
import org.apache.doris.datasource.property.storage.StorageProperties;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.apache.doris.persist.gson.GsonUtils;
import org.apache.doris.thrift.TFileType;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
index 037c9452270..75b20cc45e1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/CastExpr.java
@@ -23,7 +23,7 @@ package org.apache.doris.analysis;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.qe.ConnectContext;
import org.apache.doris.thrift.TExpr;
import org.apache.doris.thrift.TExprNode;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java
index 6fef2d05844..6a01c637bbc 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DateLiteral.java
@@ -26,8 +26,8 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
import org.apache.doris.common.InvalidFormatException;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.nereids.util.DateUtils;
import org.apache.doris.thrift.TDateLiteral;
import org.apache.doris.thrift.TExprNode;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/DecimalLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/DecimalLiteral.java
index 90656236695..3d18f0ac013 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/DecimalLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/DecimalLiteral.java
@@ -24,7 +24,7 @@ import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.Config;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.qe.SessionVariable;
import org.apache.doris.thrift.TDecimalLiteral;
import org.apache.doris.thrift.TExprNode;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
index 286c512ad64..253d45fa743 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/Expr.java
@@ -30,9 +30,9 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
import org.apache.doris.common.TreeNode;
import org.apache.doris.common.io.Text;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.nereids.util.Utils;
import org.apache.doris.persist.gson.GsonUtils;
import org.apache.doris.planner.normalize.Normalizer;
@@ -1257,4 +1257,3 @@ public abstract class Expr extends TreeNode<Expr>
implements Cloneable, ExprStat
return slots;
}
}
-
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/FloatLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/FloatLiteral.java
index 0c161b3fb95..41d03a06bfa 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FloatLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FloatLiteral.java
@@ -22,7 +22,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import
org.apache.doris.nereids.trees.expressions.literal.format.FractionalFormat;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv4Literal.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv4Literal.java
index 8f3e9dd0f6c..986a7817bef 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv4Literal.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv4Literal.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
import org.apache.doris.thrift.TIPv4Literal;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv6Literal.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv6Literal.java
index 2bc593e517b..7c3d504d8dd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv6Literal.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/IPv6Literal.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
import org.apache.doris.thrift.TIPv6Literal;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/JsonLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/JsonLiteral.java
index e617697d34f..4c2235997e7 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/JsonLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/JsonLiteral.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
import org.apache.doris.thrift.TJsonLiteral;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/LiteralExpr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/LiteralExpr.java
index 9fbdbfa88a1..8091ffd2803 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/LiteralExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/LiteralExpr.java
@@ -24,7 +24,7 @@ import org.apache.doris.catalog.MysqlColType;
import org.apache.doris.catalog.PrimitiveType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.mysql.MysqlProto;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/MapLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/MapLiteral.java
index 6e5a7e1c2b5..6156072ddb1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/MapLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/MapLiteral.java
@@ -22,7 +22,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
import org.apache.doris.thrift.TTypeDesc;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/analysis/MaxLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/MaxLiteral.java
index f890b752bc7..91f4a767e1e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/MaxLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/MaxLiteral.java
@@ -19,7 +19,7 @@ package org.apache.doris.analysis;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
public final class MaxLiteral extends LiteralExpr {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/NullLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/NullLiteral.java
index ff6a6135037..2792b8ebb6a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/NullLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/NullLiteral.java
@@ -26,7 +26,7 @@ import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
import org.apache.doris.common.FeConstants;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/PlaceHolderExpr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/PlaceHolderExpr.java
index f4a261816bb..5fa4cce92e3 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/PlaceHolderExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/PlaceHolderExpr.java
@@ -23,7 +23,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import com.google.common.base.Preconditions;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
index 786e7eef0bb..89944012098 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/StringLiteral.java
@@ -23,7 +23,7 @@ package org.apache.doris.analysis;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
import org.apache.doris.thrift.TStringLiteral;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/StructLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/StructLiteral.java
index b743d1396d3..22f3f048504 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/StructLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/StructLiteral.java
@@ -23,7 +23,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
import org.apache.doris.thrift.TTypeDesc;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/VarBinaryLiteral.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/VarBinaryLiteral.java
index 38b831469b2..8cc93cdd416 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/VarBinaryLiteral.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/VarBinaryLiteral.java
@@ -21,7 +21,7 @@ import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.TableIf.TableType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.AnalysisException;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
import org.apache.doris.thrift.TVarBinaryLiteral;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/util/LocationPath.java
b/fe/fe-core/src/main/java/org/apache/doris/common/util/LocationPath.java
index 1ce6576635d..c7558938711 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/LocationPath.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/LocationPath.java
@@ -20,7 +20,7 @@ package org.apache.doris.common.util;
import org.apache.doris.common.UserException;
import org.apache.doris.datasource.property.storage.AzurePropertyUtils;
import org.apache.doris.datasource.property.storage.StorageProperties;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.apache.doris.fs.FileSystemType;
import org.apache.doris.fs.SchemaTypeMapper;
import org.apache.doris.thrift.TFileType;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PrintableMap.java
b/fe/fe-core/src/main/java/org/apache/doris/common/util/PrintableMap.java
index 0f7d67c3454..33f87769296 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/PrintableMap.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/util/PrintableMap.java
@@ -18,7 +18,6 @@
package org.apache.doris.common.util;
import org.apache.doris.common.maxcompute.MCProperties;
-import org.apache.doris.datasource.property.ConnectorPropertiesUtils;
import
org.apache.doris.datasource.property.metastore.AWSGlueMetaStoreBaseProperties;
import org.apache.doris.datasource.property.metastore.AliyunDLFBaseProperties;
import org.apache.doris.datasource.property.storage.AzureProperties;
@@ -29,6 +28,7 @@ import
org.apache.doris.datasource.property.storage.OBSProperties;
import org.apache.doris.datasource.property.storage.OSSHdfsProperties;
import org.apache.doris.datasource.property.storage.OSSProperties;
import org.apache.doris.datasource.property.storage.S3Properties;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
import com.google.common.collect.Sets;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index 4049fc264d2..4e7764662d1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -109,7 +109,6 @@ import org.apache.doris.common.FeConstants;
import org.apache.doris.common.MarkedCountDownLatch;
import org.apache.doris.common.MetaNotFoundException;
import org.apache.doris.common.Pair;
-import org.apache.doris.common.ResultOr;
import org.apache.doris.common.UserException;
import org.apache.doris.common.io.CountingDataOutputStream;
import org.apache.doris.common.lock.MonitoredReentrantLock;
@@ -123,6 +122,7 @@ import org.apache.doris.common.util.TimeUtils;
import org.apache.doris.common.util.Util;
import org.apache.doris.datasource.es.EsRepository;
import org.apache.doris.event.DropPartitionEvent;
+import org.apache.doris.foundation.type.ResultOr;
import org.apache.doris.info.PartitionNamesInfo;
import org.apache.doris.mtmv.BaseTableInfo;
import org.apache.doris.mtmv.MTMVUtil;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSTransaction.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSTransaction.java
index f7ff09dcdc0..0a7fe103427 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSTransaction.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/hive/HMSTransaction.java
@@ -25,9 +25,9 @@ import org.apache.doris.backup.Status;
import org.apache.doris.common.Pair;
import org.apache.doris.common.UserException;
import org.apache.doris.common.profile.SummaryProfile;
-import org.apache.doris.common.util.PathUtils;
import org.apache.doris.datasource.NameMapping;
import org.apache.doris.datasource.statistics.CommonStatistics;
+import org.apache.doris.foundation.util.PathUtils;
import org.apache.doris.fs.FileSystem;
import org.apache.doris.fs.FileSystemProvider;
import org.apache.doris.fs.FileSystemUtil;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectionProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectionProperties.java
index 1247eabcc2a..916076c5123 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectionProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectionProperties.java
@@ -18,7 +18,9 @@
package org.apache.doris.datasource.property;
import org.apache.doris.common.CatalogConfigFileUtils;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
+import org.apache.doris.foundation.property.ConnectorProperty;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import com.google.common.base.Strings;
import com.google.common.collect.Maps;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AWSGlueMetaStoreBaseProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AWSGlueMetaStoreBaseProperties.java
index b17504fbca7..e24405d7826 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AWSGlueMetaStoreBaseProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AWSGlueMetaStoreBaseProperties.java
@@ -17,9 +17,9 @@
package org.apache.doris.datasource.property.metastore;
-import org.apache.doris.datasource.property.ConnectorPropertiesUtils;
-import org.apache.doris.datasource.property.ConnectorProperty;
-import org.apache.doris.datasource.property.ParamRules;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
+import org.apache.doris.foundation.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ParamRules;
import com.google.common.base.Strings;
import lombok.Getter;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AbstractIcebergProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AbstractIcebergProperties.java
index ee73f9f6074..9b23e61eb4d 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AbstractIcebergProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AbstractIcebergProperties.java
@@ -20,10 +20,10 @@ package org.apache.doris.datasource.property.metastore;
import org.apache.doris.common.security.authentication.ExecutionAuthenticator;
import org.apache.doris.datasource.iceberg.IcebergExternalCatalog;
import org.apache.doris.datasource.metacache.CacheSpec;
-import org.apache.doris.datasource.property.ConnectorProperty;
import
org.apache.doris.datasource.property.storage.AbstractS3CompatibleProperties;
import org.apache.doris.datasource.property.storage.S3Properties;
import org.apache.doris.datasource.property.storage.StorageProperties;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AbstractPaimonProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AbstractPaimonProperties.java
index 7d0fca2446c..9c9631a516f 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AbstractPaimonProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AbstractPaimonProperties.java
@@ -18,8 +18,8 @@
package org.apache.doris.datasource.property.metastore;
import org.apache.doris.common.security.authentication.ExecutionAuthenticator;
-import org.apache.doris.datasource.property.ConnectorProperty;
import org.apache.doris.datasource.property.storage.StorageProperties;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.collect.ImmutableList;
import lombok.Getter;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AliyunDLFBaseProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AliyunDLFBaseProperties.java
index 8b3d6735fa7..a0066b28dcb 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AliyunDLFBaseProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/AliyunDLFBaseProperties.java
@@ -17,10 +17,10 @@
package org.apache.doris.datasource.property.metastore;
-import org.apache.doris.datasource.property.ConnectorPropertiesUtils;
-import org.apache.doris.datasource.property.ConnectorProperty;
-import org.apache.doris.datasource.property.ParamRules;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
+import org.apache.doris.foundation.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ParamRules;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import com.aliyun.datalake.metastore.common.DataLakeConfig;
import org.apache.commons.lang3.BooleanUtils;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HMSBaseProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HMSBaseProperties.java
index 54019cffe31..75e5ef34a00 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HMSBaseProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HMSBaseProperties.java
@@ -22,9 +22,9 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.security.authentication.AuthenticationConfig;
import org.apache.doris.common.security.authentication.HadoopAuthenticator;
import
org.apache.doris.common.security.authentication.KerberosAuthenticationConfig;
-import org.apache.doris.datasource.property.ConnectorPropertiesUtils;
-import org.apache.doris.datasource.property.ConnectorProperty;
-import org.apache.doris.datasource.property.ParamRules;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
+import org.apache.doris.foundation.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ParamRules;
import com.google.common.base.Strings;
import lombok.Getter;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HiveGlueMetaStoreProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HiveGlueMetaStoreProperties.java
index 06cd55b431b..ea0f5437d6c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HiveGlueMetaStoreProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HiveGlueMetaStoreProperties.java
@@ -17,8 +17,8 @@
package org.apache.doris.datasource.property.metastore;
-import org.apache.doris.datasource.property.ConnectorProperty;
import org.apache.doris.datasource.property.common.AwsCredentialsProviderMode;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.amazonaws.ClientConfiguration;
import com.amazonaws.glue.catalog.util.AWSGlueConfig;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HiveHMSProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HiveHMSProperties.java
index 636759e33f6..5a22cfd7c95 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HiveHMSProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/HiveHMSProperties.java
@@ -19,7 +19,7 @@ package org.apache.doris.datasource.property.metastore;
import org.apache.doris.common.Config;
import
org.apache.doris.common.security.authentication.HadoopExecutionAuthenticator;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorProperty;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergHMSMetaStoreProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergHMSMetaStoreProperties.java
index 7484a529490..94c4d19f9eb 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergHMSMetaStoreProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergHMSMetaStoreProperties.java
@@ -19,8 +19,8 @@ package org.apache.doris.datasource.property.metastore;
import
org.apache.doris.common.security.authentication.HadoopExecutionAuthenticator;
import org.apache.doris.datasource.iceberg.IcebergExternalCatalog;
-import org.apache.doris.datasource.property.ConnectorProperty;
import org.apache.doris.datasource.property.storage.StorageProperties;
+import org.apache.doris.foundation.property.ConnectorProperty;
import lombok.Getter;
import org.apache.commons.lang3.exception.ExceptionUtils;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergJdbcMetaStoreProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergJdbcMetaStoreProperties.java
index 90b07215a7c..6be4b31dc2d 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergJdbcMetaStoreProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergJdbcMetaStoreProperties.java
@@ -19,8 +19,8 @@ package org.apache.doris.datasource.property.metastore;
import org.apache.doris.catalog.JdbcResource;
import org.apache.doris.datasource.iceberg.IcebergExternalCatalog;
-import org.apache.doris.datasource.property.ConnectorProperty;
import org.apache.doris.datasource.property.storage.StorageProperties;
+import org.apache.doris.foundation.property.ConnectorProperty;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergRestProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergRestProperties.java
index 7100d269262..887e6d49c5e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergRestProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/IcebergRestProperties.java
@@ -18,9 +18,9 @@
package org.apache.doris.datasource.property.metastore;
import org.apache.doris.datasource.iceberg.IcebergExternalCatalog;
-import org.apache.doris.datasource.property.ConnectorProperty;
-import org.apache.doris.datasource.property.ParamRules;
import org.apache.doris.datasource.property.storage.StorageProperties;
+import org.apache.doris.foundation.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ParamRules;
import lombok.Getter;
import org.apache.hadoop.conf.Configuration;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonHMSMetaStoreProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonHMSMetaStoreProperties.java
index 24342fce457..e7e6689d3e3 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonHMSMetaStoreProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonHMSMetaStoreProperties.java
@@ -19,8 +19,8 @@ package org.apache.doris.datasource.property.metastore;
import
org.apache.doris.common.security.authentication.HadoopExecutionAuthenticator;
import org.apache.doris.datasource.paimon.PaimonExternalCatalog;
-import org.apache.doris.datasource.property.ConnectorProperty;
import org.apache.doris.datasource.property.storage.StorageProperties;
+import org.apache.doris.foundation.property.ConnectorProperty;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.hadoop.conf.Configuration;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonJdbcMetaStoreProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonJdbcMetaStoreProperties.java
index 760b9a62171..7568d59c5fe 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonJdbcMetaStoreProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonJdbcMetaStoreProperties.java
@@ -20,9 +20,9 @@ package org.apache.doris.datasource.property.metastore;
import org.apache.doris.catalog.JdbcResource;
import
org.apache.doris.common.security.authentication.HadoopExecutionAuthenticator;
import org.apache.doris.datasource.paimon.PaimonExternalCatalog;
-import org.apache.doris.datasource.property.ConnectorProperty;
import org.apache.doris.datasource.property.storage.HdfsProperties;
import org.apache.doris.datasource.property.storage.StorageProperties;
+import org.apache.doris.foundation.property.ConnectorProperty;
import org.apache.commons.lang3.StringUtils;
import org.apache.hadoop.conf.Configuration;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonRestMetaStoreProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonRestMetaStoreProperties.java
index 85651a2dc83..465fc873b7c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonRestMetaStoreProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/metastore/PaimonRestMetaStoreProperties.java
@@ -18,9 +18,9 @@
package org.apache.doris.datasource.property.metastore;
import org.apache.doris.datasource.paimon.PaimonExternalCatalog;
-import org.apache.doris.datasource.property.ConnectorProperty;
-import org.apache.doris.datasource.property.ParamRules;
import org.apache.doris.datasource.property.storage.StorageProperties;
+import org.apache.doris.foundation.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ParamRules;
import lombok.Getter;
import org.apache.paimon.catalog.Catalog;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AbstractS3CompatibleProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AbstractS3CompatibleProperties.java
index 7d7e5ffb1b6..113b9e78371 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AbstractS3CompatibleProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AbstractS3CompatibleProperties.java
@@ -18,9 +18,9 @@
package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
-import org.apache.doris.datasource.property.ConnectorPropertiesUtils;
-import org.apache.doris.datasource.property.ConnectorProperty;
import org.apache.doris.datasource.property.common.AwsCredentialsProviderMode;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.base.Preconditions;
import com.google.common.base.Strings;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AzureProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AzureProperties.java
index a8d6280d377..6b0c32fcda3 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AzureProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AzureProperties.java
@@ -19,9 +19,9 @@ package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.Config;
import org.apache.doris.common.UserException;
-import org.apache.doris.datasource.property.ConnectorProperty;
-import org.apache.doris.datasource.property.ParamRules;
import org.apache.doris.datasource.property.storage.exception.AzureAuthType;
+import org.apache.doris.foundation.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ParamRules;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AzurePropertyUtils.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AzurePropertyUtils.java
index e2d04057f65..44ed707ec63 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AzurePropertyUtils.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/AzurePropertyUtils.java
@@ -19,7 +19,7 @@ package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.Config;
import org.apache.doris.common.UserException;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.apache.commons.lang3.StringUtils;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/BrokerProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/BrokerProperties.java
index 2987eb762ae..a1c9b2e4d36 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/BrokerProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/BrokerProperties.java
@@ -18,7 +18,7 @@
package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/COSProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/COSProperties.java
index 80c94fa3efd..e9f66572c96 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/COSProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/COSProperties.java
@@ -17,7 +17,7 @@
package org.apache.doris.datasource.property.storage;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/GCSProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/GCSProperties.java
index c8c878b4ce4..483ce490756 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/GCSProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/GCSProperties.java
@@ -17,7 +17,7 @@
package org.apache.doris.datasource.property.storage;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.collect.ImmutableSet;
import lombok.Getter;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/HdfsProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/HdfsProperties.java
index f2077b45ad7..91249ad98d6 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/HdfsProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/HdfsProperties.java
@@ -19,7 +19,7 @@ package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
import org.apache.doris.common.security.authentication.HadoopAuthenticator;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/HdfsPropertiesUtils.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/HdfsPropertiesUtils.java
index 8f2e92d1e64..3a503217b28 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/HdfsPropertiesUtils.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/HdfsPropertiesUtils.java
@@ -18,7 +18,7 @@
package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import com.google.common.base.Strings;
import org.apache.commons.lang3.StringUtils;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/MinioProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/MinioProperties.java
index cec9ca23e2d..c2c6a31ba57 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/MinioProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/MinioProperties.java
@@ -17,7 +17,7 @@
package org.apache.doris.datasource.property.storage;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.collect.ImmutableSet;
import lombok.Getter;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OBSProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OBSProperties.java
index 5d993baddaf..0f4f2d6d3f6 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OBSProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OBSProperties.java
@@ -17,7 +17,7 @@
package org.apache.doris.datasource.property.storage;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OSSHdfsProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OSSHdfsProperties.java
index d8860c111be..6ea01815e73 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OSSHdfsProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OSSHdfsProperties.java
@@ -18,7 +18,7 @@
package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.collect.ImmutableSet;
import lombok.Setter;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OSSProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OSSProperties.java
index b38bc639076..9a5c11ce0f5 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OSSProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OSSProperties.java
@@ -18,8 +18,8 @@
package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
-import org.apache.doris.datasource.property.ConnectorPropertiesUtils;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableSet;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OzoneProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OzoneProperties.java
index 24d1079b998..dbcdab93be0 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OzoneProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/OzoneProperties.java
@@ -17,7 +17,7 @@
package org.apache.doris.datasource.property.storage;
-import org.apache.doris.datasource.property.ConnectorProperty;
+import org.apache.doris.foundation.property.ConnectorProperty;
import com.google.common.collect.ImmutableSet;
import lombok.Getter;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/S3Properties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/S3Properties.java
index 6bfb4f462ff..9b2aa2a8c11 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/S3Properties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/S3Properties.java
@@ -22,10 +22,10 @@ import
org.apache.doris.cloud.proto.Cloud.CredProviderTypePB;
import org.apache.doris.cloud.proto.Cloud.ObjectStoreInfoPB.Provider;
import org.apache.doris.common.Config;
import org.apache.doris.common.DdlException;
-import org.apache.doris.datasource.property.ConnectorPropertiesUtils;
-import org.apache.doris.datasource.property.ConnectorProperty;
import
org.apache.doris.datasource.property.common.AwsCredentialsProviderFactory;
import org.apache.doris.datasource.property.common.AwsCredentialsProviderMode;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
+import org.apache.doris.foundation.property.ConnectorProperty;
import org.apache.doris.thrift.TCredProviderType;
import org.apache.doris.thrift.TS3StorageParam;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/S3PropertyUtils.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/S3PropertyUtils.java
index 4e64f13a635..887a9b25c54 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/S3PropertyUtils.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/S3PropertyUtils.java
@@ -19,7 +19,7 @@ package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
import org.apache.doris.common.util.S3URI;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/StorageProperties.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/StorageProperties.java
index 687451ee1ba..724543353f2 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/StorageProperties.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/StorageProperties.java
@@ -19,8 +19,8 @@ package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
import org.apache.doris.datasource.property.ConnectionProperties;
-import org.apache.doris.datasource.property.ConnectorProperty;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.ConnectorProperty;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import lombok.Getter;
import org.apache.commons.lang3.BooleanUtils;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
index 6747f0a6bea..69af5dac8d9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/NereidsPlanner.java
@@ -25,7 +25,6 @@ import org.apache.doris.catalog.Env;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.Config;
import org.apache.doris.common.FeConstants;
-import org.apache.doris.common.FormatOptions;
import org.apache.doris.common.NereidsException;
import org.apache.doris.common.Pair;
import org.apache.doris.common.UserException;
@@ -33,6 +32,7 @@ import org.apache.doris.common.profile.SummaryProfile;
import org.apache.doris.common.util.DebugUtil;
import org.apache.doris.common.util.TimeUtils;
import org.apache.doris.common.util.Util;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.mysql.FieldInfo;
import org.apache.doris.nereids.exceptions.AnalysisException;
import org.apache.doris.nereids.glue.LogicalPlanAdapter;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java
index 233c39ac995..d57f975384e 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/StatementContext.java
@@ -27,13 +27,13 @@ import org.apache.doris.catalog.MaterializedIndexMeta;
import org.apache.doris.catalog.Partition;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.catalog.View;
-import org.apache.doris.common.FormatOptions;
import org.apache.doris.common.Id;
import org.apache.doris.common.IdGenerator;
import org.apache.doris.common.Pair;
import org.apache.doris.datasource.mvcc.MvccSnapshot;
import org.apache.doris.datasource.mvcc.MvccTable;
import org.apache.doris.datasource.mvcc.MvccTableInfo;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.mtmv.BaseTableInfo;
import org.apache.doris.nereids.analyzer.UnboundRelation;
import org.apache.doris.nereids.exceptions.AnalysisException;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/Literal.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/Literal.java
index ae3b725752b..02989a3099c 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/Literal.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/literal/Literal.java
@@ -23,7 +23,7 @@ import org.apache.doris.analysis.LiteralExpr;
import org.apache.doris.catalog.MysqlColType;
import org.apache.doris.catalog.Type;
import org.apache.doris.common.Config;
-import org.apache.doris.common.util.ByteBufferUtil;
+import org.apache.doris.foundation.util.ByteBufferUtil;
import org.apache.doris.mysql.MysqlProto;
import org.apache.doris.nereids.exceptions.AnalysisException;
import org.apache.doris.nereids.exceptions.CastException;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
index 68075a86c2f..6302b6aaed1 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/insert/InsertUtils.java
@@ -26,10 +26,10 @@ import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Table;
import org.apache.doris.catalog.TableIf;
import org.apache.doris.common.Config;
-import org.apache.doris.common.FormatOptions;
import org.apache.doris.common.util.DebugPointUtil;
import org.apache.doris.datasource.hive.HMSExternalTable;
import org.apache.doris.datasource.jdbc.JdbcExternalTable;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.nereids.CascadesContext;
import org.apache.doris.nereids.analyzer.Scope;
import org.apache.doris.nereids.analyzer.UnboundAlias;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/planner/GroupCommitPlanner.java
b/fe/fe-core/src/main/java/org/apache/doris/planner/GroupCommitPlanner.java
index 4b70189c811..1a987405671 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/planner/GroupCommitPlanner.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/planner/GroupCommitPlanner.java
@@ -28,11 +28,11 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
-import org.apache.doris.common.FormatOptions;
import org.apache.doris.common.LoadException;
import org.apache.doris.common.Pair;
import org.apache.doris.common.UserException;
import org.apache.doris.common.util.DebugUtil;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.nereids.StatementContext;
import org.apache.doris.nereids.load.NereidsStreamLoadPlanner;
import org.apache.doris.nereids.load.NereidsStreamLoadTask;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilterGenerator.java
b/fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilterGenerator.java
index c934635738e..d79a2a13111 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilterGenerator.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/planner/RuntimeFilterGenerator.java
@@ -17,7 +17,7 @@
package org.apache.doris.planner;
-import org.apache.doris.common.util.BitUtil;
+import org.apache.doris.foundation.util.BitUtil;
import org.apache.doris.qe.SessionVariable;
/**
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
index d90d3230ea1..0db9c769aa9 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java
@@ -44,7 +44,6 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.DdlException;
import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.FeConstants;
-import org.apache.doris.common.FormatOptions;
import org.apache.doris.common.NereidsException;
import org.apache.doris.common.QueryTimeoutException;
import org.apache.doris.common.Status;
@@ -63,6 +62,7 @@ import org.apache.doris.common.util.TimeUtils;
import org.apache.doris.common.util.Util;
import org.apache.doris.datasource.FileScanNode;
import org.apache.doris.datasource.tvf.source.TVFScanNode;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.metric.MetricRepo;
import org.apache.doris.mysql.FieldInfo;
import org.apache.doris.mysql.MysqlChannel;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java
b/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java
index c6f986875eb..25d9e59688a 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/qe/VariableMgr.java
@@ -32,7 +32,7 @@ import org.apache.doris.common.ErrorCode;
import org.apache.doris.common.ErrorReport;
import org.apache.doris.common.PatternMatcher;
import org.apache.doris.common.VariableAnnotation;
-import org.apache.doris.common.util.SerializationUtils;
+import org.apache.doris.foundation.util.SerializationUtils;
import org.apache.doris.nereids.trees.expressions.literal.Literal;
import org.apache.doris.persist.GlobalVarPersistInfo;
import org.apache.doris.statistics.StatisticConstants;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/common/util/LocationPathTest.java
b/fe/fe-core/src/test/java/org/apache/doris/common/util/LocationPathTest.java
index 9e7351aa3e4..1e5d404a7f6 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/common/util/LocationPathTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/common/util/LocationPathTest.java
@@ -19,7 +19,7 @@ package org.apache.doris.common.util;
import org.apache.doris.common.UserException;
import org.apache.doris.datasource.property.storage.StorageProperties;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.apache.doris.fs.FileSystemType;
import org.apache.doris.thrift.TFileType;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/common/util/PathUtilsTest.java
b/fe/fe-core/src/test/java/org/apache/doris/common/util/PathUtilsTest.java
index 86a007e9b4c..a2e42172de1 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/common/util/PathUtilsTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/common/util/PathUtilsTest.java
@@ -17,6 +17,8 @@
package org.apache.doris.common.util;
+import org.apache.doris.foundation.util.PathUtils;
+
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/common/util/SerializationUtilsTest.java
b/fe/fe-core/src/test/java/org/apache/doris/common/util/SerializationUtilsTest.java
index 345fa4c5060..296fb928e1a 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/common/util/SerializationUtilsTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/common/util/SerializationUtilsTest.java
@@ -17,6 +17,8 @@
package org.apache.doris.common.util;
+import org.apache.doris.foundation.util.SerializationUtils;
+
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/iceberg/IcebergTransactionTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/iceberg/IcebergTransactionTest.java
index e46d6d3a3fb..f3dd3166afb 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/iceberg/IcebergTransactionTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/iceberg/IcebergTransactionTest.java
@@ -19,10 +19,10 @@ package org.apache.doris.datasource.iceberg;
import org.apache.doris.common.UserException;
import org.apache.doris.common.security.authentication.ExecutionAuthenticator;
-import org.apache.doris.common.util.SerializationUtils;
import org.apache.doris.datasource.ExternalTable;
import org.apache.doris.datasource.NameMapping;
import org.apache.doris.datasource.iceberg.helper.IcebergWriterHelper;
+import org.apache.doris.foundation.util.SerializationUtils;
import
org.apache.doris.nereids.trees.plans.commands.insert.IcebergInsertCommandContext;
import org.apache.doris.thrift.TFileContent;
import org.apache.doris.thrift.TIcebergCommitData;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/ConnectorPropertiesUtilsTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/ConnectorPropertiesUtilsTest.java
index 3490a5c6ae0..cdd22c72fe5 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/ConnectorPropertiesUtilsTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/ConnectorPropertiesUtilsTest.java
@@ -17,6 +17,8 @@
package org.apache.doris.datasource.property;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
+import org.apache.doris.foundation.property.ConnectorProperty;
import org.apache.doris.nereids.types.UnsupportedType;
import org.junit.jupiter.api.Assertions;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/ParamRulesTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/ParamRulesTest.java
index 24fb075d15e..71cc4f21ab7 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/ParamRulesTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/ParamRulesTest.java
@@ -17,6 +17,8 @@
package org.apache.doris.datasource.property;
+import org.apache.doris.foundation.property.ParamRules;
+
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.function.Executable;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/AliyunDLFBasePropertiesTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/AliyunDLFBasePropertiesTest.java
index ba28c4caab3..42862ef0c75 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/AliyunDLFBasePropertiesTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/AliyunDLFBasePropertiesTest.java
@@ -17,8 +17,8 @@
package org.apache.doris.datasource.property.metastore;
-import org.apache.doris.datasource.property.ConnectorPropertiesUtils;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.ConnectorPropertiesUtils;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/IcebergAliyunDLFMetaStorePropertiesTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/IcebergAliyunDLFMetaStorePropertiesTest.java
index 5c773967220..45deebe4b4a 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/IcebergAliyunDLFMetaStorePropertiesTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/metastore/IcebergAliyunDLFMetaStorePropertiesTest.java
@@ -19,7 +19,7 @@ package org.apache.doris.datasource.property.metastore;
import org.apache.doris.datasource.iceberg.dlf.DLFCatalog;
import org.apache.doris.datasource.property.storage.StorageProperties;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.apache.iceberg.catalog.Catalog;
import org.junit.jupiter.api.Assertions;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/AzurePropertiesTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/AzurePropertiesTest.java
index 073d9f361b7..28667c2de98 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/AzurePropertiesTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/AzurePropertiesTest.java
@@ -19,7 +19,7 @@ package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.Config;
import org.apache.doris.common.UserException;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.apache.hadoop.conf.Configuration;
import org.junit.jupiter.api.Assertions;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/AzurePropertyUtilsTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/AzurePropertyUtilsTest.java
index 1965284c3d1..b0848eff0b0 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/AzurePropertyUtilsTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/AzurePropertyUtilsTest.java
@@ -19,7 +19,7 @@ package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.Config;
import org.apache.doris.common.UserException;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/COSPropertiesTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/COSPropertiesTest.java
index ef0d5b46e24..33daf435d15 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/COSPropertiesTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/COSPropertiesTest.java
@@ -18,7 +18,7 @@
package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import com.google.common.collect.Maps;
import org.junit.jupiter.api.Assertions;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/HdfsPropertiesTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/HdfsPropertiesTest.java
index 6554829f9f7..f0a4e73231f 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/HdfsPropertiesTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/HdfsPropertiesTest.java
@@ -21,7 +21,7 @@ import org.apache.doris.common.Config;
import org.apache.doris.common.UserException;
import
org.apache.doris.common.security.authentication.HadoopKerberosAuthenticator;
import
org.apache.doris.common.security.authentication.HadoopSimpleAuthenticator;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import com.google.common.collect.Maps;
import org.apache.hadoop.conf.Configuration;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/HdfsPropertiesUtilsTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/HdfsPropertiesUtilsTest.java
index 8ed1a4776bb..589aebacd57 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/HdfsPropertiesUtilsTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/HdfsPropertiesUtilsTest.java
@@ -18,7 +18,7 @@
package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import com.google.common.collect.ImmutableSet;
import org.junit.jupiter.api.Assertions;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/S3ConnectorPropertiesUtilsTest.java
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/S3ConnectorPropertiesUtilsTest.java
index a1aba03d5aa..18414f47b36 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/S3ConnectorPropertiesUtilsTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/datasource/property/storage/S3ConnectorPropertiesUtilsTest.java
@@ -18,7 +18,7 @@
package org.apache.doris.datasource.property.storage;
import org.apache.doris.common.UserException;
-import
org.apache.doris.datasource.property.storage.exception.StoragePropertiesException;
+import org.apache.doris.foundation.property.StoragePropertiesException;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/VarBinaryLiteralTest.java
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/VarBinaryLiteralTest.java
index 504c8f11d9d..89a17162545 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/VarBinaryLiteralTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/VarBinaryLiteralTest.java
@@ -19,7 +19,7 @@ package org.apache.doris.nereids.trees.expressions;
import org.apache.doris.analysis.NullLiteral;
import org.apache.doris.analysis.VarBinaryLiteral;
-import org.apache.doris.common.FormatOptions;
+import org.apache.doris.foundation.format.FormatOptions;
import org.apache.doris.thrift.TExprNode;
import org.apache.doris.thrift.TExprNodeType;
import org.apache.doris.thrift.TVarBinaryLiteral;
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/planner/HiveTableSinkTest.java
b/fe/fe-core/src/test/java/org/apache/doris/planner/HiveTableSinkTest.java
index 8f4adff727c..8ade2d52d2b 100644
--- a/fe/fe-core/src/test/java/org/apache/doris/planner/HiveTableSinkTest.java
+++ b/fe/fe-core/src/test/java/org/apache/doris/planner/HiveTableSinkTest.java
@@ -21,13 +21,13 @@ import org.apache.doris.catalog.Column;
import org.apache.doris.catalog.PrimitiveType;
import org.apache.doris.common.UserException;
import org.apache.doris.common.security.authentication.ExecutionAuthenticator;
-import org.apache.doris.common.util.PathUtils;
import org.apache.doris.datasource.hive.HMSCachedClient;
import org.apache.doris.datasource.hive.HMSExternalCatalog;
import org.apache.doris.datasource.hive.HMSExternalDatabase;
import org.apache.doris.datasource.hive.HMSExternalTable;
import org.apache.doris.datasource.hive.ThriftHMSCachedClient;
import org.apache.doris.datasource.property.storage.StorageProperties;
+import org.apache.doris.foundation.util.PathUtils;
import org.apache.doris.qe.ConnectContext;
import mockit.Mock;
diff --git a/fe/fe-foundation/DESIGN.md b/fe/fe-foundation/DESIGN.md
new file mode 100644
index 00000000000..f4a949d8556
--- /dev/null
+++ b/fe/fe-foundation/DESIGN.md
@@ -0,0 +1,178 @@
+# fe-foundation Module Design Document
+
+## 1. Background & Motivation
+
+The existing `fe-common` module has accumulated heavy dependencies over time
(Guava, Hadoop, Trino,
+ANTLR, Alibaba MaxCompute SDK, etc.), making it unsuitable as a lightweight
shared library for the
+plugin/SPI ecosystem. When SPI plugin authors depend on `fe-common`, they are
forced to pull in
+dozens of transitive dependencies that have nothing to do with their plugin
logic.
+
+We need a **zero-dependency foundation module** that sits below `fe-common`
and `fe-extension-spi`
+in the dependency hierarchy, providing only the most essential,
general-purpose utilities that any
+module — including SPI plugins — can safely depend on.
+
+## 2. Naming Decision
+
+| Candidate | Verdict
|
+|------------------|-------------------------------------------------------------------------|
+| `fe-foundation` | **Chosen.** Clear "below-common" semantics. No ambiguity
with existing modules. |
+| `fe-base` | Too generic; widely used in other contexts.
|
+| `fe-essentials` | Good semantics but verbose.
|
+| `fe-primitives` | Implies primitive types; misleading.
|
+| `fe-toolkit` | Industry convention maps "toolkit" to heavier helper libs
(e.g., Trino).|
+| `fe-kernel` | Conflicts with database "kernel" terminology.
|
+
+**Industry references:**
+- Trino: `trino-spi` (zero-dep contract) + `lib/trino-plugin-toolkit`
(optional helpers)
+- Flink: `flink-annotations` (lightest) → `flink-core-api` → `flink-core`
+- Iceberg: `common/` (pure utilities) → `api/` (interfaces) → `core/`
(implementation)
+- SeaTunnel: `seatunnel-common` (utilities) + `seatunnel-api` (SPI)
+
+## 3. Module Positioning
+
+```
+fe-foundation ← Zero third-party dependencies. Pure JDK utilities.
+ │
+ ├── fe-extension-spi ← Plugin contracts (Plugin, PluginFactory,
PluginContext)
+ │ │
+ │ └── fe-extension-loader ← Plugin classloading & discovery
+ │
+ ├── fe-common ← Heavier shared code (Gson, Guava, Hadoop,
etc.)
+ │
+ └── fe-core ← Main FE module (optimizer, catalog,
transaction)
+```
+
+**Key principle:** `fe-foundation` has **ZERO** compile-scope third-party
dependencies. Only JDK.
+
+## 4. Admission Criteria
+
+A class qualifies for `fe-foundation` if it meets **ALL** of:
+
+1. **Zero third-party runtime dependencies** — only `java.*` imports
+2. **No coupling to Doris business logic** — no references to catalog,
optimizer, planner, etc.
+3. **General-purpose** — useful across multiple modules (SPI plugins,
fe-common, fe-core, etc.)
+4. **Stable API** — unlikely to change frequently
+
+## 5. Package Structure
+
+```
+org.apache.doris.foundation/
+├── property/
+│ ├── ConnectorProperty.java # @annotation: marks config fields
+│ ├── ConnectorPropertiesUtils.java # Reflection-based KV → Bean binder
+│ ├── StoragePropertiesException.java # Property-related RuntimeException
+│ └── ParamRules.java # Fluent parameter validation DSL
+├── type/
+│ └── ResultOr.java # Rust-style Result<T, E> type
+├── format/
+│ └── FormatOptions.java # Immutable data formatting config
+└── util/
+ ├── BitUtil.java # Bit manipulation helpers
+ ├── ByteBufferUtil.java # Unsigned ByteBuffer reads
+ ├── SerializationUtils.java # Deep clone via Java serialization
+ └── PathUtils.java # URI path comparison utilities
+```
+
+## 6. Classes Included (First Iteration)
+
+### 6.1 Property Framework (from fe-core)
+
+| Class | Original Location | External Deps | Description |
+|-------|-------------------|---------------|-------------|
+| `ConnectorProperty` | `o.a.d.datasource.property` | None | Runtime
annotation for connector config fields |
+| `ConnectorPropertiesUtils` | `o.a.d.datasource.property` | None
(Guava/commons-lang3 removed) | Reflection-based KV→Bean binding |
+| `ParamRules` | `o.a.d.datasource.property` | None | Fluent validation DSL
with chained rules |
+| `StoragePropertiesException` | `o.a.d.datasource.property.storage.exception`
| None | RuntimeException for property errors |
+
+### 6.2 Type Utilities (from fe-common)
+
+| Class | Original Location | External Deps | Description |
+|-------|-------------------|---------------|-------------|
+| `ResultOr<T,E>` | `o.a.d.common` | None | Success-or-error result type |
+
+### 6.3 Format Utilities (from fe-common)
+
+| Class | Original Location | External Deps | Description |
+|-------|-------------------|---------------|-------------|
+| `FormatOptions` | `o.a.d.common` | None | Immutable formatting configuration
|
+
+### 6.4 General Utilities (from fe-core)
+
+| Class | Original Location | External Deps | Description |
+|-------|-------------------|---------------|-------------|
+| `BitUtil` | `o.a.d.common.util` | None | log2, power-of-2 rounding |
+| `ByteBufferUtil` | `o.a.d.common.util` | None | Unsigned byte buffer reads |
+| `SerializationUtils` | `o.a.d.common.util` | None | Deep clone via
serialization |
+| `PathUtils` | `o.a.d.common.util` | None | URI path comparison with S3
handling |
+
+## 7. Classes NOT Included (and Why)
+
+| Class | Reason |
+|-------|--------|
+| `Pair`, `Triple` | Depend on `@SerializedName` (Gson) for persistence.
Moving would require adding Gson or breaking persistence compatibility. |
+| `Writable`, `Codec`, `CountingDataOutputStream`, `DataInputBuffer`,
`DataOutputBuffer`, etc. | Deeply embedded in the persistence layer (194+
importers for Writable). High-risk migration better done in a separate phase. |
+| `CloudCredential` | Depends on `commons-lang3`. Could be migrated after
trivial refactoring. |
+| `GZIPUtils`, `EnvUtils` | Depend on `commons-io` / Guava. Could be migrated
after trivial refactoring. |
+
+## 8. Serialization Safety Analysis
+
+All 10 classes are **SAFE** to move (package rename):
+
+- **None** implement `java.io.Serializable` (except
`StoragePropertiesException` via `Throwable`,
+ but it is never serialized to disk)
+- **None** are registered in `RuntimeTypeAdapterFactory` (no class name stored
in JSON)
+- **None** have `serialVersionUID`
+- All are either annotations, static utility classes, or transient runtime
objects
+- No class name is stored in any editlog, metadata image, or checkpoint
+
+## 9. Migration Strategy
+
+### Phase 1 (This PR): Backward-Compatible Migration
+
+1. Create `fe-foundation` module with zero dependencies
+2. Copy classes to new `org.apache.doris.foundation.*` packages
+3. In original locations, replace class bodies with **extends/delegation** to
the foundation class:
+ ```java
+ // fe-core: org.apache.doris.datasource.property.ParamRules
+ // Now just re-exports the foundation class
+ package org.apache.doris.datasource.property;
+ public class ParamRules extends
org.apache.doris.foundation.property.ParamRules {}
+ ```
+4. No existing code needs to change import statements
+5. New code should prefer importing from `org.apache.doris.foundation.*`
+
+### Phase 2 (Future): Gradually update imports across the codebase
+
+- Update import statements in fe-core to use foundation packages directly
+- Deprecate and eventually remove the re-export shims
+- Migrate more classes from fe-common (IO utilities, Pair/Triple after
decoupling Gson)
+
+## 10. Build Configuration
+
+```xml
+<!-- fe-foundation/pom.xml -->
+<artifactId>fe-foundation</artifactId>
+<packaging>jar</packaging>
+<name>Doris FE Foundation</name>
+<description>Zero-dependency foundation utilities for Doris FE modules and SPI
plugins</description>
+
+<dependencies>
+ <!-- Intentionally empty. This module has ZERO third-party dependencies.
-->
+</dependencies>
+```
+
+## 11. Dependency Graph After Migration
+
+```
+fe-foundation (0 deps)
+ ↑
+ ├── fe-extension-spi (depends on fe-foundation)
+ │ ↑
+ │ └── fe-extension-loader
+ │
+ ├── fe-common (depends on fe-foundation + Guava + Gson + Hadoop + ...)
+ │ ↑
+ │ └── fe-core
+ │
+ └── fe-core (depends on fe-foundation + fe-common + ...)
+```
diff --git a/fe/fe-foundation/pom.xml b/fe/fe-foundation/pom.xml
new file mode 100644
index 00000000000..2890ce4e43c
--- /dev/null
+++ b/fe/fe-foundation/pom.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.doris</groupId>
+ <version>${revision}</version>
+ <artifactId>fe</artifactId>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>fe-foundation</artifactId>
+ <packaging>jar</packaging>
+ <name>Doris FE Foundation</name>
+ <description>Zero-dependency foundation utilities for Doris FE modules and
SPI plugins</description>
+
+ <!-- Intentionally NO dependencies. This module depends only on JDK. -->
+
+ <build>
+ <finalName>doris-fe-foundation</finalName>
+ <directory>${project.basedir}/target/</directory>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <configuration>
+ <attach>true</attach>
+ </configuration>
+ <executions>
+ <execution>
+ <id>create-source-jar</id>
+ <goals>
+ <goal>jar-no-fork</goal>
+ <goal>test-jar-no-fork</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>prepare-test-jar</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/FormatOptions.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/format/FormatOptions.java
similarity index 98%
rename from fe/fe-core/src/main/java/org/apache/doris/common/FormatOptions.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/format/FormatOptions.java
index 39d939a6a8e..a77f6c02c8c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/FormatOptions.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/format/FormatOptions.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.common;
+package org.apache.doris.foundation.format;
/**
* Format options for formatting literals in FE.
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectorPropertiesUtils.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/ConnectorPropertiesUtils.java
similarity index 91%
rename from
fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectorPropertiesUtils.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/ConnectorPropertiesUtils.java
index 35b8ce4e754..6be437c7ba4 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectorPropertiesUtils.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/ConnectorPropertiesUtils.java
@@ -15,13 +15,11 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.datasource.property;
-
-import com.google.common.collect.Sets;
-import org.apache.commons.lang3.StringUtils;
+package org.apache.doris.foundation.property;
import java.lang.reflect.Field;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -72,7 +70,7 @@ public class ConnectorPropertiesUtils {
for (Field field : supportedProps) {
String matchedName = getMatchedPropertyName(field, props);
- if (StringUtils.isNotBlank(matchedName) &&
StringUtils.isNotBlank(props.get(matchedName))) {
+ if (isNotBlank(matchedName) && isNotBlank(props.get(matchedName)))
{
try {
Object rawValue = props.get(matchedName);
Object convertedValue = convertValue(rawValue,
field.getType());
@@ -101,7 +99,7 @@ public class ConnectorPropertiesUtils {
return null;
}
for (String name : annotation.names()) {
- if (StringUtils.isNotBlank(props.get(name))) {
+ if (isNotBlank(props.get(name))) {
return name;
}
}
@@ -150,11 +148,11 @@ public class ConnectorPropertiesUtils {
/**
* Return the sensitive keys of the give properties
*
- * @param clazz
- * @return
+ * @param clazz the class to inspect
+ * @return set of property name aliases marked as sensitive
*/
public static Set<String> getSensitiveKeys(Class<?> clazz) {
- Set<String> keys = Sets.newHashSet();
+ Set<String> keys = new HashSet<>();
List<Field> supportedProps = getConnectorProperties(clazz);
for (Field field : supportedProps) {
ConnectorProperty anno =
field.getAnnotation(ConnectorProperty.class);
@@ -166,5 +164,11 @@ public class ConnectorPropertiesUtils {
}
return keys;
}
-}
+ /**
+ * Checks if a string is not null, not empty, and not whitespace-only.
+ */
+ private static boolean isNotBlank(String s) {
+ return s != null && !s.trim().isEmpty();
+ }
+}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectorProperty.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/ConnectorProperty.java
similarity index 96%
rename from
fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectorProperty.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/ConnectorProperty.java
index 7078f6c61a3..96d607d7c76 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ConnectorProperty.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/ConnectorProperty.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.datasource.property;
+package org.apache.doris.foundation.property;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ParamRules.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/ParamRules.java
similarity index 99%
rename from
fe/fe-core/src/main/java/org/apache/doris/datasource/property/ParamRules.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/ParamRules.java
index bc364897f6b..f8f02b32539 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/ParamRules.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/ParamRules.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.datasource.property;
+package org.apache.doris.foundation.property;
import java.util.ArrayList;
import java.util.List;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/exception/StoragePropertiesException.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/StoragePropertiesException.java
similarity index 96%
rename from
fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/exception/StoragePropertiesException.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/StoragePropertiesException.java
index 00d8c46411f..f8d12fdba4e 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/datasource/property/storage/exception/StoragePropertiesException.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/property/StoragePropertiesException.java
@@ -22,7 +22,7 @@
* an error message, and another that also accepts a cause exception.
*/
-package org.apache.doris.datasource.property.storage.exception;
+package org.apache.doris.foundation.property;
public class StoragePropertiesException extends RuntimeException {
diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/ResultOr.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/type/ResultOr.java
similarity index 97%
rename from fe/fe-common/src/main/java/org/apache/doris/common/ResultOr.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/type/ResultOr.java
index 40909e98229..143b765b5ec 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/ResultOr.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/type/ResultOr.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.common;
+package org.apache.doris.foundation.type;
public class ResultOr<T, E> {
private final T value;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/util/BitUtil.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/BitUtil.java
similarity index 97%
rename from fe/fe-core/src/main/java/org/apache/doris/common/util/BitUtil.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/BitUtil.java
index 84c4ec111a1..fa83d0fb1b1 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/BitUtil.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/BitUtil.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.common.util;
+package org.apache.doris.foundation.util;
public class BitUtil {
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/util/ByteBufferUtil.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/ByteBufferUtil.java
similarity index 96%
rename from
fe/fe-core/src/main/java/org/apache/doris/common/util/ByteBufferUtil.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/ByteBufferUtil.java
index 4ec8f01149a..9568e6b3a92 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/ByteBufferUtil.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/ByteBufferUtil.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.common.util;
+package org.apache.doris.foundation.util;
import java.nio.ByteBuffer;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PathUtils.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/PathUtils.java
similarity index 98%
rename from fe/fe-core/src/main/java/org/apache/doris/common/util/PathUtils.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/PathUtils.java
index dd4ca93e2ca..954d4c5bddd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/util/PathUtils.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/PathUtils.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.common.util;
+package org.apache.doris.foundation.util;
import java.net.URI;
import java.net.URISyntaxException;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/util/SerializationUtils.java
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/SerializationUtils.java
similarity index 98%
rename from
fe/fe-core/src/main/java/org/apache/doris/common/util/SerializationUtils.java
rename to
fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/SerializationUtils.java
index cc18bcb0a10..131eddd0a97 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/common/util/SerializationUtils.java
+++
b/fe/fe-foundation/src/main/java/org/apache/doris/foundation/util/SerializationUtils.java
@@ -15,7 +15,7 @@
// specific language governing permissions and limitations
// under the License.
-package org.apache.doris.common.util;
+package org.apache.doris.foundation.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
diff --git a/fe/pom.xml b/fe/pom.xml
index f4f73542da9..39ceaae516c 100644
--- a/fe/pom.xml
+++ b/fe/pom.xml
@@ -215,6 +215,7 @@ under the License.
</extensions>
</build>
<modules>
+ <module>fe-foundation</module>
<module>fe-common</module>
<module>fe-core</module>
<module>hive-udf</module>
@@ -749,6 +750,11 @@ under the License.
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>fe-foundation</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>fe-common</artifactId>
diff --git a/fs_brokers/cdc_client/build.sh b/fs_brokers/cdc_client/build.sh
index 6f2e325b3ec..f037ab70445 100755
--- a/fs_brokers/cdc_client/build.sh
+++ b/fs_brokers/cdc_client/build.sh
@@ -27,7 +27,7 @@ export CDC_CLIENT_HOME="${ROOT}"
"${DORIS_HOME}"/generated-source.sh noclean
cd "${DORIS_HOME}/fe"
-"${MVN_CMD}" install -pl fe-common -Dskip.doc=true -DskipTests
+"${MVN_CMD}" install -pl fe-common -am -Dskip.doc=true -DskipTests
echo "Install cdc client..."
cd "${CDC_CLIENT_HOME}"
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]