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]

Reply via email to