Repository: apache/amoro
Pull request #2757 (2024-04-16 12:41:30)

Change package name for module mixed-format/hive
<!--
Thanks for sending a pull request!

Here are some tips for you:
  1. If this is your first time, please read our contributor guidelines: https://amoro.apache.org/how-to-contribute/
  2. If the PR is related to an issue in https://github.com/apache/amoro/issues, add '[AMORO-XXXX]' in your PR title, e.g., '[AMORO-XXXX] Your PR title ...'.
  3. If the PR is unfinished, add '[WIP]' in your PR title, e.g., '[WIP][AMORO-XXXX] Your PR title ...'.
-->

## Why are the changes needed?
<!--
Please clarify why the changes are needed. For instance,
  1. If you add a feature, you can talk about its use case.
  2. If you fix a bug, you can clarify why it is a bug.
  3. Use Fix/Resolve/Close #{ISSUE_NUMBER} to link this PR to its related issue
-->

Change package name to `org.apache.amoro` for mixed-format/hive.

## Brief change log
<!--
Clearly describe the changes made in modules, classes, methods, etc.
-->

- Change package name.

## How was this patch tested?

- [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible

- [ ] Add screenshots for manual tests if appropriate

- [x] Run test locally before making a pull request

## Documentation

- Does this pull request introduce a new feature? (no)
- If yes, how is the feature documented? (not applicable)



Patch:
diff --git a/ams/server/src/main/java/com/netease/arctic/server/catalog/MixedHiveCatalogImpl.java b/ams/server/src/main/java/com/netease/arctic/server/catalog/MixedHiveCatalogImpl.java
index dd004413d..a81375ffd 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/catalog/MixedHiveCatalogImpl.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/catalog/MixedHiveCatalogImpl.java
@@ -22,14 +22,14 @@ import com.netease.arctic.AmoroTable;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.api.CatalogMeta;
 import com.netease.arctic.formats.mixed.MixedTable;
-import com.netease.arctic.hive.CachedHiveClientPool;
-import com.netease.arctic.hive.HMSClient;
-import com.netease.arctic.hive.catalog.MixedHiveTables;
 import com.netease.arctic.server.persistence.mapper.TableMetaMapper;
 import com.netease.arctic.server.table.TableMetadata;
 import com.netease.arctic.server.table.internal.InternalTableCreator;
 import com.netease.arctic.server.table.internal.InternalTableHandler;
 import com.netease.arctic.utils.ArcticCatalogUtil;
+import org.apache.amoro.hive.CachedHiveClientPool;
+import org.apache.amoro.hive.HMSClient;
+import org.apache.amoro.hive.catalog.MixedHiveTables;
 import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
 import org.apache.iceberg.rest.requests.CreateTableRequest;
 import org.apache.thrift.TException;
diff --git a/ams/server/src/main/java/com/netease/arctic/server/dashboard/controller/TableController.java b/ams/server/src/main/java/com/netease/arctic/server/dashboard/controller/TableController.java
index 78e136f89..b3fcf1f15 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/dashboard/controller/TableController.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/dashboard/controller/TableController.java
@@ -26,11 +26,6 @@ import com.netease.arctic.api.CatalogMeta;
 import com.netease.arctic.api.ServerTableIdentifier;
 import com.netease.arctic.api.config.Configurations;
 import com.netease.arctic.catalog.CatalogLoader;
-import com.netease.arctic.hive.CachedHiveClientPool;
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.catalog.ArcticHiveCatalog;
-import com.netease.arctic.hive.utils.HiveTableUtil;
-import com.netease.arctic.hive.utils.UpgradeHiveTableUtil;
 import com.netease.arctic.properties.CatalogMetaProperties;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.server.catalog.ServerCatalog;
@@ -63,6 +58,11 @@ import com.netease.arctic.table.TableMetaStore;
 import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.utils.ArcticCatalogUtil;
 import io.javalin.http.Context;
+import org.apache.amoro.hive.CachedHiveClientPool;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.catalog.ArcticHiveCatalog;
+import org.apache.amoro.hive.utils.HiveTableUtil;
+import org.apache.amoro.hive.utils.UpgradeHiveTableUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Table;
diff --git a/ams/server/src/main/java/com/netease/arctic/server/optimizing/KeyedTableCommit.java b/ams/server/src/main/java/com/netease/arctic/server/optimizing/KeyedTableCommit.java
index f53c26350..cf37aedbc 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/optimizing/KeyedTableCommit.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/optimizing/KeyedTableCommit.java
@@ -18,14 +18,13 @@
 
 package com.netease.arctic.server.optimizing;
 
-import static com.netease.arctic.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
-import static com.netease.arctic.hive.op.UpdateHiveFiles.SYNC_DATA_TO_HIVE;
 import static com.netease.arctic.server.ArcticServiceConstants.INVALID_SNAPSHOT_ID;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.SYNC_DATA_TO_HIVE;
 
 import com.netease.arctic.api.CommitMetaProducer;
 import com.netease.arctic.data.DataFileType;
 import com.netease.arctic.data.PrimaryKeyedFile;
-import com.netease.arctic.hive.utils.TableTypeUtil;
 import com.netease.arctic.op.OverwriteBaseFiles;
 import com.netease.arctic.op.SnapshotSummary;
 import com.netease.arctic.optimizing.RewriteFilesInput;
@@ -34,6 +33,7 @@ import com.netease.arctic.server.exception.OptimizingCommitException;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.utils.ArcticTableUtil;
 import com.netease.arctic.utils.ContentFiles;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.DeleteFile;
diff --git a/ams/server/src/main/java/com/netease/arctic/server/optimizing/UnKeyedTableCommit.java b/ams/server/src/main/java/com/netease/arctic/server/optimizing/UnKeyedTableCommit.java
index 22227080e..5a600293d 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/optimizing/UnKeyedTableCommit.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/optimizing/UnKeyedTableCommit.java
@@ -18,17 +18,12 @@
 
 package com.netease.arctic.server.optimizing;
 
-import static com.netease.arctic.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
-import static com.netease.arctic.hive.op.UpdateHiveFiles.SYNC_DATA_TO_HIVE;
 import static com.netease.arctic.server.ArcticServiceConstants.INVALID_SNAPSHOT_ID;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.SYNC_DATA_TO_HIVE;
 
 import com.netease.arctic.api.CommitMetaProducer;
 import com.netease.arctic.data.FileNameRules;
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.table.SupportHive;
-import com.netease.arctic.hive.utils.HivePartitionUtil;
-import com.netease.arctic.hive.utils.HiveTableUtil;
-import com.netease.arctic.hive.utils.TableTypeUtil;
 import com.netease.arctic.op.SnapshotSummary;
 import com.netease.arctic.optimizing.OptimizingInputProperties;
 import com.netease.arctic.optimizing.RewriteFilesOutput;
@@ -41,6 +36,11 @@ import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.ContentFiles;
 import com.netease.arctic.utils.TableFileUtil;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.table.SupportHive;
+import org.apache.amoro.hive.utils.HivePartitionUtil;
+import org.apache.amoro.hive.utils.HiveTableUtil;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.hadoop.hive.metastore.api.Partition;
 import org.apache.hadoop.hive.metastore.api.Table;
diff --git a/ams/server/src/main/java/com/netease/arctic/server/optimizing/maintainer/MixedTableMaintainer.java b/ams/server/src/main/java/com/netease/arctic/server/optimizing/maintainer/MixedTableMaintainer.java
index 98f52482e..20b919dc4 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/optimizing/maintainer/MixedTableMaintainer.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/optimizing/maintainer/MixedTableMaintainer.java
@@ -24,7 +24,6 @@ import static org.apache.iceberg.relocated.com.google.common.primitives.Longs.mi
 import com.netease.arctic.IcebergFileEntry;
 import com.netease.arctic.api.config.DataExpirationConfig;
 import com.netease.arctic.data.FileNameRules;
-import com.netease.arctic.hive.utils.TableTypeUtil;
 import com.netease.arctic.scan.TableEntriesScan;
 import com.netease.arctic.server.table.TableRuntime;
 import com.netease.arctic.server.utils.HiveLocationUtil;
@@ -36,6 +35,7 @@ import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.ArcticTableUtil;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.tuple.Pair;
diff --git a/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/MixedHivePartitionPlan.java b/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/MixedHivePartitionPlan.java
index 5d55b5a02..11a31c5db 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/MixedHivePartitionPlan.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/MixedHivePartitionPlan.java
@@ -20,11 +20,11 @@ package com.netease.arctic.server.optimizing.plan;
 
 import com.netease.arctic.data.DataFileType;
 import com.netease.arctic.data.PrimaryKeyedFile;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.optimizing.OptimizingInputProperties;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.server.table.TableRuntime;
 import com.netease.arctic.table.ArcticTable;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.iceberg.ContentFile;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.StructLike;
diff --git a/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/MixedIcebergPartitionPlan.java b/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/MixedIcebergPartitionPlan.java
index 5c58c6bdb..1ab91567b 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/MixedIcebergPartitionPlan.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/MixedIcebergPartitionPlan.java
@@ -21,12 +21,12 @@ package com.netease.arctic.server.optimizing.plan;
 import com.netease.arctic.data.DataFileType;
 import com.netease.arctic.data.DataTreeNode;
 import com.netease.arctic.data.PrimaryKeyedFile;
-import com.netease.arctic.hive.optimizing.MixFormatRewriteExecutorFactory;
 import com.netease.arctic.optimizing.OptimizingInputProperties;
 import com.netease.arctic.server.table.TableRuntime;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.optimizing.MixFormatRewriteExecutorFactory;
 import org.apache.iceberg.ContentFile;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.FileContent;
diff --git a/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/OptimizingEvaluator.java b/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/OptimizingEvaluator.java
index 55ffbccd8..0665fd2b7 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/OptimizingEvaluator.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/OptimizingEvaluator.java
@@ -20,7 +20,6 @@ package com.netease.arctic.server.optimizing.plan;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.netease.arctic.TableFormat;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.server.optimizing.scan.IcebergTableFileScanHelper;
 import com.netease.arctic.server.optimizing.scan.KeyedTableFileScanHelper;
 import com.netease.arctic.server.optimizing.scan.TableFileScanHelper;
@@ -32,6 +31,8 @@ import com.netease.arctic.server.utils.IcebergTableUtil;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.utils.ArcticTableUtil;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.table.SupportHive;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.StructLike;
 import org.apache.iceberg.expressions.Expression;
@@ -145,7 +146,7 @@ public class OptimizingEvaluator {
       return new CommonPartitionEvaluator(tableRuntime, partition, System.currentTimeMillis());
     } else {
       Map<String, String> partitionProperties = partitionProperties(partition);
-      if (com.netease.arctic.hive.utils.TableTypeUtil.isHive(arcticTable)) {
+      if (TableTypeUtil.isHive(arcticTable)) {
         String hiveLocation = (((SupportHive) arcticTable).hiveLocation());
         return new MixedHivePartitionPlan.MixedHivePartitionEvaluator(
             tableRuntime,
diff --git a/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/OptimizingPlanner.java b/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/OptimizingPlanner.java
index 149d77359..119a3545a 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/OptimizingPlanner.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/optimizing/plan/OptimizingPlanner.java
@@ -19,7 +19,6 @@
 package com.netease.arctic.server.optimizing.plan;
 
 import com.netease.arctic.TableFormat;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.server.ArcticServiceConstants;
 import com.netease.arctic.server.optimizing.OptimizingType;
 import com.netease.arctic.server.table.KeyedTableSnapshot;
@@ -27,6 +26,8 @@ import com.netease.arctic.server.table.TableRuntime;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.utils.ArcticTableUtil;
 import com.netease.arctic.utils.ExpressionUtil;
+import org.apache.amoro.hive.table.SupportHive;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.StructLike;
 import org.apache.iceberg.expressions.Expression;
@@ -226,7 +227,7 @@ public class OptimizingPlanner extends OptimizingEvaluator {
       this.arcticTable = arcticTable;
       this.tableRuntime = tableRuntime;
       this.planTime = planTime;
-      if (com.netease.arctic.hive.utils.TableTypeUtil.isHive(arcticTable)) {
+      if (TableTypeUtil.isHive(arcticTable)) {
         this.hiveLocation = (((SupportHive) arcticTable).hiveLocation());
       } else {
         this.hiveLocation = null;
@@ -237,7 +238,7 @@ public class OptimizingPlanner extends OptimizingEvaluator {
       if (TableFormat.ICEBERG == arcticTable.format()) {
         return new IcebergPartitionPlan(tableRuntime, arcticTable, partition, planTime);
       } else {
-        if (com.netease.arctic.hive.utils.TableTypeUtil.isHive(arcticTable)) {
+        if (TableTypeUtil.isHive(arcticTable)) {
           return new MixedHivePartitionPlan(
               tableRuntime, arcticTable, partition, hiveLocation, planTime);
         } else {
diff --git a/ams/server/src/main/java/com/netease/arctic/server/table/executor/HiveCommitSyncExecutor.java b/ams/server/src/main/java/com/netease/arctic/server/table/executor/HiveCommitSyncExecutor.java
index f3aefd332..08198a276 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/table/executor/HiveCommitSyncExecutor.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/table/executor/HiveCommitSyncExecutor.java
@@ -19,12 +19,12 @@
 package com.netease.arctic.server.table.executor;
 
 import com.netease.arctic.api.ServerTableIdentifier;
-import com.netease.arctic.hive.table.SupportHive;
-import com.netease.arctic.hive.utils.HiveMetaSynchronizer;
-import com.netease.arctic.hive.utils.TableTypeUtil;
 import com.netease.arctic.server.table.TableManager;
 import com.netease.arctic.server.table.TableRuntime;
 import com.netease.arctic.table.ArcticTable;
+import org.apache.amoro.hive.table.SupportHive;
+import org.apache.amoro.hive.utils.HiveMetaSynchronizer;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/ams/server/src/main/java/com/netease/arctic/server/utils/HiveLocationUtil.java b/ams/server/src/main/java/com/netease/arctic/server/utils/HiveLocationUtil.java
index 268019656..e2f9470b9 100644
--- a/ams/server/src/main/java/com/netease/arctic/server/utils/HiveLocationUtil.java
+++ b/ams/server/src/main/java/com/netease/arctic/server/utils/HiveLocationUtil.java
@@ -18,10 +18,10 @@
 
 package com.netease.arctic.server.utils;
 
-import com.netease.arctic.hive.table.SupportHive;
-import com.netease.arctic.hive.utils.TableTypeUtil;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.utils.TableFileUtil;
+import org.apache.amoro.hive.table.SupportHive;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.apache.hadoop.hive.metastore.api.Partition;
 import org.apache.hadoop.hive.metastore.api.Table;
 
diff --git a/core/src/main/java/com/netease/arctic/catalog/CatalogLoader.java b/core/src/main/java/com/netease/arctic/catalog/CatalogLoader.java
index 06a7fefb0..ab2cff3a5 100644
--- a/core/src/main/java/com/netease/arctic/catalog/CatalogLoader.java
+++ b/core/src/main/java/com/netease/arctic/catalog/CatalogLoader.java
@@ -47,8 +47,7 @@ import java.util.stream.Collectors;
 public class CatalogLoader {
 
   public static final String INTERNAL_CATALOG_IMPL = InternalMixedIcebergCatalog.class.getName();
-  public static final String HIVE_CATALOG_IMPL =
-      "com.netease.arctic.hive.catalog.ArcticHiveCatalog";
+  public static final String HIVE_CATALOG_IMPL = "org.apache.amoro.hive.catalog.ArcticHiveCatalog";
   public static final String MIXED_ICEBERG_CATALOG_IMP = BasicMixedIcebergCatalog.class.getName();
 
   /**
diff --git a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/lookup/ArcticRowDataLookupFunction.java b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/lookup/ArcticRowDataLookupFunction.java
index 01bbc8103..464d67c78 100644
--- a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/lookup/ArcticRowDataLookupFunction.java
+++ b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/lookup/ArcticRowDataLookupFunction.java
@@ -18,10 +18,10 @@
 
 package org.apache.amoro.flink.lookup;
 
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import com.netease.arctic.table.ArcticTable;
 import org.apache.amoro.flink.read.hybrid.reader.DataIteratorReaderFunction;
 import org.apache.amoro.flink.table.ArcticTableLoader;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import org.apache.flink.configuration.Configuration;
 import org.apache.flink.table.data.RowData;
 import org.apache.flink.table.functions.FunctionContext;
diff --git a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/lookup/BasicLookupFunction.java b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/lookup/BasicLookupFunction.java
index 4d19edaea..3809d6fc7 100644
--- a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/lookup/BasicLookupFunction.java
+++ b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/lookup/BasicLookupFunction.java
@@ -22,12 +22,12 @@ import static org.apache.amoro.flink.table.descriptors.ArcticValidator.LOOKUP_RE
 import static org.apache.amoro.flink.util.ArcticUtils.loadArcticTable;
 import static org.apache.flink.util.Preconditions.checkArgument;
 
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import com.netease.arctic.table.ArcticTable;
 import org.apache.amoro.flink.read.MixedIncrementalLoader;
 import org.apache.amoro.flink.read.hybrid.enumerator.MergeOnReadIncrementalPlanner;
 import org.apache.amoro.flink.read.hybrid.reader.DataIteratorReaderFunction;
 import org.apache.amoro.flink.table.ArcticTableLoader;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import org.apache.flink.configuration.Configuration;
 import org.apache.flink.metrics.MetricGroup;
 import org.apache.flink.streaming.api.operators.StreamingRuntimeContext;
diff --git a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/MixedIncrementalLoader.java b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/MixedIncrementalLoader.java
index a52a00fed..abe966f80 100644
--- a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/MixedIncrementalLoader.java
+++ b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/MixedIncrementalLoader.java
@@ -18,12 +18,12 @@
 
 package org.apache.amoro.flink.read;
 
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import org.apache.amoro.flink.read.hybrid.enumerator.ArcticEnumeratorOffset;
 import org.apache.amoro.flink.read.hybrid.enumerator.ContinuousEnumerationResult;
 import org.apache.amoro.flink.read.hybrid.enumerator.ContinuousSplitPlanner;
 import org.apache.amoro.flink.read.hybrid.reader.DataIteratorReaderFunction;
 import org.apache.amoro.flink.read.hybrid.split.ArcticSplit;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import org.apache.iceberg.expressions.Expression;
 import org.apache.iceberg.io.CloseableIterator;
 import org.slf4j.Logger;
diff --git a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/source/FlinkArcticDataReader.java b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/source/FlinkArcticDataReader.java
index 8d7d50d58..30f6183ee 100644
--- a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/source/FlinkArcticDataReader.java
+++ b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/source/FlinkArcticDataReader.java
@@ -19,12 +19,12 @@
 package org.apache.amoro.flink.read.source;
 
 import com.netease.arctic.data.DataTreeNode;
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveUnkeyedDataReader;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.io.reader.DeleteFilter;
 import com.netease.arctic.scan.ArcticFileScanTask;
 import com.netease.arctic.table.PrimaryKeySpec;
 import org.apache.amoro.flink.read.AdaptHiveFlinkParquetReaders;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveUnkeyedDataReader;
 import org.apache.flink.table.data.RowData;
 import org.apache.flink.table.types.logical.RowType;
 import org.apache.iceberg.FileScanTask;
diff --git a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/source/FlinkArcticMORDataReader.java b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/source/FlinkArcticMORDataReader.java
index 01763aa5c..9d2a504b3 100644
--- a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/source/FlinkArcticMORDataReader.java
+++ b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/read/source/FlinkArcticMORDataReader.java
@@ -18,10 +18,10 @@
 
 package org.apache.amoro.flink.read.source;
 
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.table.PrimaryKeySpec;
 import org.apache.amoro.flink.read.AdaptHiveFlinkParquetReaders;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import org.apache.flink.table.data.RowData;
 import org.apache.flink.table.types.logical.RowType;
 import org.apache.iceberg.Schema;
diff --git a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/table/ArcticDynamicSource.java b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/table/ArcticDynamicSource.java
index fada3125f..e6b4bd38a 100644
--- a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/table/ArcticDynamicSource.java
+++ b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/table/ArcticDynamicSource.java
@@ -18,7 +18,6 @@
 
 package org.apache.amoro.flink.table;
 
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.utils.SchemaUtil;
 import org.apache.amoro.flink.lookup.ArcticRowDataLookupFunction;
@@ -30,6 +29,7 @@ import org.apache.amoro.flink.read.hybrid.reader.RowDataReaderFunction;
 import org.apache.amoro.flink.read.source.FlinkArcticMORDataReader;
 import org.apache.amoro.flink.util.FilterUtil;
 import org.apache.amoro.flink.util.IcebergAndFlinkFilters;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import org.apache.flink.api.common.eventtime.WatermarkStrategy;
 import org.apache.flink.configuration.Configuration;
 import org.apache.flink.table.api.DataTypes;
diff --git a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/write/FlinkTaskWriterBuilder.java b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/write/FlinkTaskWriterBuilder.java
index 4b8166706..df695af7d 100644
--- a/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/write/FlinkTaskWriterBuilder.java
+++ b/mixed-format/flink/flink-common/src/main/java/org/apache/amoro/flink/write/FlinkTaskWriterBuilder.java
@@ -18,11 +18,6 @@
 
 package org.apache.amoro.flink.write;
 
-import com.netease.arctic.hive.io.writer.AdaptHiveOperateToTableRelation;
-import com.netease.arctic.hive.io.writer.AdaptHiveOutputFileFactory;
-import com.netease.arctic.hive.table.HiveLocationKind;
-import com.netease.arctic.hive.table.SupportHive;
-import com.netease.arctic.hive.utils.TableTypeUtil;
 import com.netease.arctic.io.writer.CommonOutputFileFactory;
 import com.netease.arctic.io.writer.OutputFileFactory;
 import com.netease.arctic.io.writer.SortedPosDeleteWriter;
@@ -38,6 +33,11 @@ import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.table.WriteOperationKind;
 import com.netease.arctic.utils.SchemaUtil;
+import org.apache.amoro.hive.io.writer.AdaptHiveOperateToTableRelation;
+import org.apache.amoro.hive.io.writer.AdaptHiveOutputFileFactory;
+import org.apache.amoro.hive.table.HiveLocationKind;
+import org.apache.amoro.hive.table.SupportHive;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.apache.flink.table.data.RowData;
 import org.apache.flink.table.types.logical.RowType;
 import org.apache.iceberg.FileFormat;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/ArcticHiveClientPool.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/ArcticHiveClientPool.java
similarity index 99%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/ArcticHiveClientPool.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/ArcticHiveClientPool.java
index 9d62811e4..1a250bd42 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/ArcticHiveClientPool.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/ArcticHiveClientPool.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive;
+package org.apache.amoro.hive;
 
 import com.netease.arctic.table.TableMetaStore;
 import org.apache.hadoop.conf.Configuration;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/CachedHiveClientPool.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/CachedHiveClientPool.java
similarity index 99%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/CachedHiveClientPool.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/CachedHiveClientPool.java
index b359dafb2..f1be69b34 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/CachedHiveClientPool.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/CachedHiveClientPool.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive;
+package org.apache.amoro.hive;
 
 import com.github.benmanes.caffeine.cache.Cache;
 import com.github.benmanes.caffeine.cache.Caffeine;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/HMSClient.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/HMSClient.java
similarity index 99%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/HMSClient.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/HMSClient.java
index 074a81e7c..140324abc 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/HMSClient.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/HMSClient.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive;
+package org.apache.amoro.hive;
 
 import org.apache.hadoop.hive.metastore.PartitionDropOptions;
 import org.apache.hadoop.hive.metastore.api.Database;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/HMSClientImpl.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/HMSClientImpl.java
similarity index 99%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/HMSClientImpl.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/HMSClientImpl.java
index 37d548aec..c4e11ad6c 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/HMSClientImpl.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/HMSClientImpl.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive;
+package org.apache.amoro.hive;
 
 import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;
 import org.apache.hadoop.hive.metastore.PartitionDropOptions;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/HMSClientPool.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/HMSClientPool.java
similarity index 96%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/HMSClientPool.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/HMSClientPool.java
index e745e3075..fa42ee7c5 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/HMSClientPool.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/HMSClientPool.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive;
+package org.apache.amoro.hive;
 
 import org.apache.iceberg.ClientPool;
 import org.apache.thrift.TException;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/catalog/ArcticHiveCatalog.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/catalog/ArcticHiveCatalog.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/catalog/ArcticHiveCatalog.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/catalog/ArcticHiveCatalog.java
index 4624de98f..557a35a1e 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/catalog/ArcticHiveCatalog.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/catalog/ArcticHiveCatalog.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.catalog;
+package org.apache.amoro.hive.catalog;
 
 import static com.netease.arctic.properties.HiveTableProperties.ARCTIC_TABLE_PRIMARY_KEYS;
 import static com.netease.arctic.properties.HiveTableProperties.ARCTIC_TABLE_ROOT_LOCATION;
@@ -31,12 +31,6 @@ import com.netease.arctic.PooledAmsClient;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.api.TableMeta;
 import com.netease.arctic.catalog.ArcticCatalog;
-import com.netease.arctic.hive.CachedHiveClientPool;
-import com.netease.arctic.hive.HMSClient;
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.utils.CompatibleHivePropertyUtil;
-import com.netease.arctic.hive.utils.HiveSchemaUtil;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.io.ArcticFileIOs;
 import com.netease.arctic.op.ArcticHadoopTableOperations;
@@ -55,6 +49,12 @@ import com.netease.arctic.table.blocker.TableBlockerManager;
 import com.netease.arctic.utils.ArcticCatalogUtil;
 import com.netease.arctic.utils.CompatiblePropertyUtil;
 import com.netease.arctic.utils.ConvertStructUtil;
+import org.apache.amoro.hive.CachedHiveClientPool;
+import org.apache.amoro.hive.HMSClient;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.utils.CompatibleHivePropertyUtil;
+import org.apache.amoro.hive.utils.HiveSchemaUtil;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.metastore.api.AlreadyExistsException;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/catalog/MixedHiveTables.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/catalog/MixedHiveTables.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/catalog/MixedHiveTables.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/catalog/MixedHiveTables.java
index 1343fd0af..0e9425634 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/catalog/MixedHiveTables.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/catalog/MixedHiveTables.java
@@ -16,14 +16,9 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.catalog;
+package org.apache.amoro.hive.catalog;
 
 import com.netease.arctic.api.TableMeta;
-import com.netease.arctic.hive.CachedHiveClientPool;
-import com.netease.arctic.hive.table.KeyedHiveTable;
-import com.netease.arctic.hive.table.UnkeyedHiveTable;
-import com.netease.arctic.hive.utils.HiveSchemaUtil;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.io.ArcticFileIOs;
 import com.netease.arctic.io.ArcticHadoopFileIO;
@@ -38,6 +33,11 @@ import com.netease.arctic.table.TableIdentifier;
 import com.netease.arctic.table.TableMetaStore;
 import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.utils.ArcticCatalogUtil;
+import org.apache.amoro.hive.CachedHiveClientPool;
+import org.apache.amoro.hive.table.KeyedHiveTable;
+import org.apache.amoro.hive.table.UnkeyedHiveTable;
+import org.apache.amoro.hive.utils.HiveSchemaUtil;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.hive.metastore.TableType;
 import org.apache.iceberg.FileFormat;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/exceptions/CannotAlterHiveLocationException.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/exceptions/CannotAlterHiveLocationException.java
similarity index 95%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/exceptions/CannotAlterHiveLocationException.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/exceptions/CannotAlterHiveLocationException.java
index e7b8f6250..76fbc7efa 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/exceptions/CannotAlterHiveLocationException.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/exceptions/CannotAlterHiveLocationException.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.exceptions;
+package org.apache.amoro.hive.exceptions;
 
 /** Exception will be thrown when alter hive location check failed */
 public class CannotAlterHiveLocationException extends IllegalStateException {
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AbstractAdaptHiveKeyedDataReader.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AbstractAdaptHiveKeyedDataReader.java
similarity index 99%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AbstractAdaptHiveKeyedDataReader.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AbstractAdaptHiveKeyedDataReader.java
index f28ce4a92..c49d25adf 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AbstractAdaptHiveKeyedDataReader.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AbstractAdaptHiveKeyedDataReader.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io.reader;
+package org.apache.amoro.hive.io.reader;
 
 import com.netease.arctic.data.DataTreeNode;
 import com.netease.arctic.io.ArcticFileIO;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AbstractAdaptHiveUnkeyedDataReader.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AbstractAdaptHiveUnkeyedDataReader.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AbstractAdaptHiveUnkeyedDataReader.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AbstractAdaptHiveUnkeyedDataReader.java
index b061b3460..71c436dc1 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AbstractAdaptHiveUnkeyedDataReader.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AbstractAdaptHiveUnkeyedDataReader.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io.reader;
+package org.apache.amoro.hive.io.reader;
 
 import com.netease.arctic.data.DataTreeNode;
 import com.netease.arctic.io.ArcticFileIO;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AdaptHiveArcticDeleteFilter.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AdaptHiveArcticDeleteFilter.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AdaptHiveArcticDeleteFilter.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AdaptHiveArcticDeleteFilter.java
index 816a7a9c7..0535d855e 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AdaptHiveArcticDeleteFilter.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AdaptHiveArcticDeleteFilter.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io.reader;
+package org.apache.amoro.hive.io.reader;
 
 import com.netease.arctic.data.DataTreeNode;
 import com.netease.arctic.io.reader.ArcticDeleteFilter;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AdaptHiveGenericKeyedDataReader.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AdaptHiveGenericKeyedDataReader.java
similarity index 99%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AdaptHiveGenericKeyedDataReader.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AdaptHiveGenericKeyedDataReader.java
index ffec7f55c..4a705d3d9 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AdaptHiveGenericKeyedDataReader.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AdaptHiveGenericKeyedDataReader.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io.reader;
+package org.apache.amoro.hive.io.reader;
 
 import com.netease.arctic.data.DataTreeNode;
 import com.netease.arctic.io.ArcticFileIO;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AdaptHiveGenericUnkeyedDataReader.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AdaptHiveGenericUnkeyedDataReader.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AdaptHiveGenericUnkeyedDataReader.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AdaptHiveGenericUnkeyedDataReader.java
index f566b9693..572416fda 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/reader/AdaptHiveGenericUnkeyedDataReader.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/reader/AdaptHiveGenericUnkeyedDataReader.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io.reader;
+package org.apache.amoro.hive.io.reader;
 
 import com.netease.arctic.data.DataTreeNode;
 import com.netease.arctic.io.ArcticFileIO;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/AdaptHiveGenericTaskWriterBuilder.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/AdaptHiveGenericTaskWriterBuilder.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/AdaptHiveGenericTaskWriterBuilder.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/AdaptHiveGenericTaskWriterBuilder.java
index 4c58c2a6e..8146a025d 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/AdaptHiveGenericTaskWriterBuilder.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/AdaptHiveGenericTaskWriterBuilder.java
@@ -16,12 +16,9 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io.writer;
+package org.apache.amoro.hive.io.writer;
 
 import com.netease.arctic.data.ChangeAction;
-import com.netease.arctic.hive.table.HiveLocationKind;
-import com.netease.arctic.hive.table.SupportHive;
-import com.netease.arctic.hive.utils.TableTypeUtil;
 import com.netease.arctic.io.writer.CommonOutputFileFactory;
 import com.netease.arctic.io.writer.GenericBaseTaskWriter;
 import com.netease.arctic.io.writer.GenericChangeTaskWriter;
@@ -39,6 +36,9 @@ import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.table.WriteOperationKind;
 import com.netease.arctic.utils.SchemaUtil;
+import org.apache.amoro.hive.table.HiveLocationKind;
+import org.apache.amoro.hive.table.SupportHive;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.apache.iceberg.FileFormat;
 import org.apache.iceberg.MetadataColumns;
 import org.apache.iceberg.MetricsModes;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/AdaptHiveOperateToTableRelation.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/AdaptHiveOperateToTableRelation.java
similarity index 94%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/AdaptHiveOperateToTableRelation.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/AdaptHiveOperateToTableRelation.java
index 650b500b5..947c7f3fc 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/AdaptHiveOperateToTableRelation.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/AdaptHiveOperateToTableRelation.java
@@ -16,15 +16,15 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io.writer;
+package org.apache.amoro.hive.io.writer;
 
-import com.netease.arctic.hive.table.HiveLocationKind;
-import com.netease.arctic.hive.utils.TableTypeUtil;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.BaseLocationKind;
 import com.netease.arctic.table.ChangeLocationKind;
 import com.netease.arctic.table.LocationKind;
 import com.netease.arctic.table.WriteOperationKind;
+import org.apache.amoro.hive.table.HiveLocationKind;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 
 public class AdaptHiveOperateToTableRelation implements OperateToTableRelation {
 
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/AdaptHiveOutputFileFactory.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/AdaptHiveOutputFileFactory.java
similarity index 97%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/AdaptHiveOutputFileFactory.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/AdaptHiveOutputFileFactory.java
index 6318bf3ef..48847eec0 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/AdaptHiveOutputFileFactory.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/AdaptHiveOutputFileFactory.java
@@ -16,13 +16,13 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io.writer;
+package org.apache.amoro.hive.io.writer;
 
 import com.netease.arctic.data.FileNameRules;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.io.writer.OutputFileFactory;
 import com.netease.arctic.io.writer.TaskWriterKey;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.iceberg.FileFormat;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.StructLike;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/OperateToTableRelation.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/OperateToTableRelation.java
similarity index 96%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/OperateToTableRelation.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/OperateToTableRelation.java
index f694d41f4..d498c5b5f 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/io/writer/OperateToTableRelation.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/io/writer/OperateToTableRelation.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io.writer;
+package org.apache.amoro.hive.io.writer;
 
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.LocationKind;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/BaseSchemaUpdate.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/BaseSchemaUpdate.java
similarity index 99%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/op/BaseSchemaUpdate.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/op/BaseSchemaUpdate.java
index 6e63737d9..94e3e6331 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/BaseSchemaUpdate.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/BaseSchemaUpdate.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
 import com.netease.arctic.table.ArcticTable;
 import org.apache.iceberg.PartitionField;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/HiveOperationTransaction.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/HiveOperationTransaction.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/op/HiveOperationTransaction.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/op/HiveOperationTransaction.java
index 5dc37d7b4..b354e007d 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/HiveOperationTransaction.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/HiveOperationTransaction.java
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
-import com.netease.arctic.hive.HMSClient;
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.table.UnkeyedHiveTable;
+import org.apache.amoro.hive.HMSClient;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.table.UnkeyedHiveTable;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.DeleteFiles;
 import org.apache.iceberg.ExpireSnapshots;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/HiveSchemaUpdate.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/HiveSchemaUpdate.java
similarity index 95%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/op/HiveSchemaUpdate.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/op/HiveSchemaUpdate.java
index 52b06ea9d..7c4784b79 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/HiveSchemaUpdate.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/HiveSchemaUpdate.java
@@ -16,13 +16,13 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.hadoop.hive.metastore.api.Table;
 import org.apache.iceberg.FileFormat;
 import org.apache.iceberg.Schema;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/OverwriteHiveFiles.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/OverwriteHiveFiles.java
similarity index 96%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/op/OverwriteHiveFiles.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/op/OverwriteHiveFiles.java
index 1bbcd3bd7..7289f05c7 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/OverwriteHiveFiles.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/OverwriteHiveFiles.java
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.table.UnkeyedHiveTable;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.table.UnkeyedHiveTable;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.OverwriteFiles;
 import org.apache.iceberg.Transaction;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/ReplaceHivePartitions.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/ReplaceHivePartitions.java
similarity index 97%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/op/ReplaceHivePartitions.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/op/ReplaceHivePartitions.java
index e97d7840d..2c35e5f3f 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/ReplaceHivePartitions.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/ReplaceHivePartitions.java
@@ -16,19 +16,19 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
-
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.exceptions.CannotAlterHiveLocationException;
-import com.netease.arctic.hive.table.UnkeyedHiveTable;
-import com.netease.arctic.hive.utils.HiveCommitUtil;
-import com.netease.arctic.hive.utils.HivePartitionUtil;
-import com.netease.arctic.hive.utils.HiveTableUtil;
+package org.apache.amoro.hive.op;
+
 import com.netease.arctic.io.ArcticHadoopFileIO;
 import com.netease.arctic.op.UpdatePartitionProperties;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.utils.TableFileUtil;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.exceptions.CannotAlterHiveLocationException;
+import org.apache.amoro.hive.table.UnkeyedHiveTable;
+import org.apache.amoro.hive.utils.HiveCommitUtil;
+import org.apache.amoro.hive.utils.HivePartitionUtil;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
 import org.apache.hadoop.hive.metastore.api.Partition;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/RewriteHiveFiles.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/RewriteHiveFiles.java
similarity index 96%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/op/RewriteHiveFiles.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/op/RewriteHiveFiles.java
index 12b8c1cc8..332d71397 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/RewriteHiveFiles.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/RewriteHiveFiles.java
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.table.UnkeyedHiveTable;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.table.UnkeyedHiveTable;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.DeleteFile;
 import org.apache.iceberg.RewriteFiles;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/UpdateHiveFiles.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/UpdateHiveFiles.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/op/UpdateHiveFiles.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/op/UpdateHiveFiles.java
index 3b18711d8..45ed74ee0 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/op/UpdateHiveFiles.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/op/UpdateHiveFiles.java
@@ -16,22 +16,22 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
 import static com.netease.arctic.op.OverwriteBaseFiles.PROPERTIES_TRANSACTION_ID;
 
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.exceptions.CannotAlterHiveLocationException;
-import com.netease.arctic.hive.table.UnkeyedHiveTable;
-import com.netease.arctic.hive.utils.HiveCommitUtil;
-import com.netease.arctic.hive.utils.HiveMetaSynchronizer;
-import com.netease.arctic.hive.utils.HivePartitionUtil;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.io.ArcticHadoopFileIO;
 import com.netease.arctic.op.UpdatePartitionProperties;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.utils.TableFileUtil;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.exceptions.CannotAlterHiveLocationException;
+import org.apache.amoro.hive.table.UnkeyedHiveTable;
+import org.apache.amoro.hive.utils.HiveCommitUtil;
+import org.apache.amoro.hive.utils.HiveMetaSynchronizer;
+import org.apache.amoro.hive.utils.HivePartitionUtil;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hive.metastore.PartitionDropOptions;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/optimizing/MixFormatOptimizingDataReader.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/optimizing/MixFormatOptimizingDataReader.java
similarity index 97%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/optimizing/MixFormatOptimizingDataReader.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/optimizing/MixFormatOptimizingDataReader.java
index 6b38bb43b..1ef9aa789 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/optimizing/MixFormatOptimizingDataReader.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/optimizing/MixFormatOptimizingDataReader.java
@@ -16,10 +16,9 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.optimizing;
+package org.apache.amoro.hive.optimizing;
 
 import com.netease.arctic.data.PrimaryKeyedFile;
-import com.netease.arctic.hive.io.reader.AdaptHiveGenericKeyedDataReader;
 import com.netease.arctic.optimizing.OptimizingDataReader;
 import com.netease.arctic.optimizing.RewriteFilesInput;
 import com.netease.arctic.scan.ArcticFileScanTask;
@@ -29,6 +28,7 @@ import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.utils.map.StructLikeCollections;
+import org.apache.amoro.hive.io.reader.AdaptHiveGenericKeyedDataReader;
 import org.apache.iceberg.DeleteFile;
 import org.apache.iceberg.MetadataColumns;
 import org.apache.iceberg.Schema;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/optimizing/MixFormatRewriteExecutor.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/optimizing/MixFormatRewriteExecutor.java
similarity index 96%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/optimizing/MixFormatRewriteExecutor.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/optimizing/MixFormatRewriteExecutor.java
index 56fb5b0a9..e11271396 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/optimizing/MixFormatRewriteExecutor.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/optimizing/MixFormatRewriteExecutor.java
@@ -16,10 +16,9 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.optimizing;
+package org.apache.amoro.hive.optimizing;
 
 import com.netease.arctic.data.PrimaryKeyedFile;
-import com.netease.arctic.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
 import com.netease.arctic.io.writer.ArcticTreeNodePosDeleteWriter;
 import com.netease.arctic.optimizing.AbstractRewriteFilesExecutor;
 import com.netease.arctic.optimizing.OptimizingDataReader;
@@ -27,6 +26,7 @@ import com.netease.arctic.optimizing.RewriteFilesInput;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.WriteOperationKind;
 import com.netease.arctic.utils.map.StructLikeCollections;
+import org.apache.amoro.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.iceberg.data.Record;
 import org.apache.iceberg.deletes.PositionDelete;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/optimizing/MixFormatRewriteExecutorFactory.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/optimizing/MixFormatRewriteExecutorFactory.java
similarity index 97%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/optimizing/MixFormatRewriteExecutorFactory.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/optimizing/MixFormatRewriteExecutorFactory.java
index c8221bf3b..c0004fe06 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/optimizing/MixFormatRewriteExecutorFactory.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/optimizing/MixFormatRewriteExecutorFactory.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.optimizing;
+package org.apache.amoro.hive.optimizing;
 
 import com.netease.arctic.optimizing.OptimizingExecutor;
 import com.netease.arctic.optimizing.OptimizingExecutorFactory;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/table/HiveLocationKind.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/table/HiveLocationKind.java
similarity index 96%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/table/HiveLocationKind.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/table/HiveLocationKind.java
index d61062e00..1388e6e26 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/table/HiveLocationKind.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/table/HiveLocationKind.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.table;
+package org.apache.amoro.hive.table;
 
 import com.netease.arctic.table.LocationKind;
 
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/table/KeyedHiveTable.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/table/KeyedHiveTable.java
similarity index 96%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/table/KeyedHiveTable.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/table/KeyedHiveTable.java
index 777ed77ff..9ff15812b 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/table/KeyedHiveTable.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/table/KeyedHiveTable.java
@@ -16,13 +16,10 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.table;
+package org.apache.amoro.hive.table;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.api.TableMeta;
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.op.BaseSchemaUpdate;
-import com.netease.arctic.hive.utils.HiveMetaSynchronizer;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.io.ArcticHadoopFileIO;
 import com.netease.arctic.properties.HiveTableProperties;
@@ -33,6 +30,9 @@ import com.netease.arctic.table.BasicUnkeyedTable;
 import com.netease.arctic.table.ChangeTable;
 import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableIdentifier;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.op.BaseSchemaUpdate;
+import org.apache.amoro.hive.utils.HiveMetaSynchronizer;
 import org.apache.iceberg.MixedChangeTableScan;
 import org.apache.iceberg.Table;
 import org.apache.iceberg.UpdateSchema;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/table/SupportHive.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/table/SupportHive.java
similarity index 94%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/table/SupportHive.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/table/SupportHive.java
index 9fedff134..8836ba56b 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/table/SupportHive.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/table/SupportHive.java
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.table;
+package org.apache.amoro.hive.table;
 
-import com.netease.arctic.hive.HMSClientPool;
 import com.netease.arctic.io.ArcticHadoopFileIO;
 import com.netease.arctic.table.ArcticTable;
+import org.apache.amoro.hive.HMSClientPool;
 
 /** Mix-in interface to mark task use hive as base store */
 public interface SupportHive extends ArcticTable {
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/table/UnkeyedHiveTable.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/table/UnkeyedHiveTable.java
similarity index 91%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/table/UnkeyedHiveTable.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/table/UnkeyedHiveTable.java
index eb8543958..f1539462a 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/table/UnkeyedHiveTable.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/table/UnkeyedHiveTable.java
@@ -16,24 +16,24 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.table;
+package org.apache.amoro.hive.table;
 
 import static com.netease.arctic.properties.HiveTableProperties.BASE_HIVE_LOCATION_ROOT;
 
 import com.netease.arctic.TableFormat;
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.op.HiveOperationTransaction;
-import com.netease.arctic.hive.op.HiveSchemaUpdate;
-import com.netease.arctic.hive.op.OverwriteHiveFiles;
-import com.netease.arctic.hive.op.ReplaceHivePartitions;
-import com.netease.arctic.hive.op.RewriteHiveFiles;
-import com.netease.arctic.hive.utils.HiveMetaSynchronizer;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.io.ArcticHadoopFileIO;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.BaseTable;
 import com.netease.arctic.table.BasicUnkeyedTable;
 import com.netease.arctic.table.TableIdentifier;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.op.HiveOperationTransaction;
+import org.apache.amoro.hive.op.HiveSchemaUpdate;
+import org.apache.amoro.hive.op.OverwriteHiveFiles;
+import org.apache.amoro.hive.op.ReplaceHivePartitions;
+import org.apache.amoro.hive.op.RewriteHiveFiles;
+import org.apache.amoro.hive.utils.HiveMetaSynchronizer;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.iceberg.ReplacePartitions;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.Table;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/CatalogUtil.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/CatalogUtil.java
similarity index 93%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/CatalogUtil.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/CatalogUtil.java
index b9dd8d122..f637400e4 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/CatalogUtil.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/CatalogUtil.java
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import com.netease.arctic.catalog.ArcticCatalog;
-import com.netease.arctic.hive.catalog.ArcticHiveCatalog;
+import org.apache.amoro.hive.catalog.ArcticHiveCatalog;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/ChangeFieldName.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/ChangeFieldName.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/ChangeFieldName.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/ChangeFieldName.java
index d92c20fd4..461dfeeb2 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/ChangeFieldName.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/ChangeFieldName.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.relocated.com.google.common.collect.Lists;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/CompatibleHivePropertyUtil.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/CompatibleHivePropertyUtil.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/CompatibleHivePropertyUtil.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/CompatibleHivePropertyUtil.java
index e3c67ec38..606316333 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/CompatibleHivePropertyUtil.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/CompatibleHivePropertyUtil.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import com.netease.arctic.properties.HiveTableProperties;
 import org.apache.iceberg.util.PropertyUtil;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveCommitUtil.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveCommitUtil.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveCommitUtil.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveCommitUtil.java
index 15ff1e0bd..c4a300c98 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveCommitUtil.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveCommitUtil.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import com.netease.arctic.io.ArcticHadoopFileIO;
 import com.netease.arctic.utils.TableFileUtil;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveMetaSynchronizer.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveMetaSynchronizer.java
similarity index 99%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveMetaSynchronizer.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveMetaSynchronizer.java
index 1327408dc..bd7a97a6d 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveMetaSynchronizer.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveMetaSynchronizer.java
@@ -16,11 +16,8 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.op.OverwriteHiveFiles;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.op.OverwriteBaseFiles;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.ArcticTable;
@@ -28,6 +25,9 @@ import com.netease.arctic.table.TableIdentifier;
 import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.op.OverwriteHiveFiles;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.hadoop.hive.metastore.Warehouse;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HivePartitionUtil.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HivePartitionUtil.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HivePartitionUtil.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HivePartitionUtil.java
index b1fb7a633..c05bbf4bd 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HivePartitionUtil.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HivePartitionUtil.java
@@ -16,12 +16,12 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
-import com.netease.arctic.hive.HMSClient;
-import com.netease.arctic.hive.HMSClientPool;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableIdentifier;
+import org.apache.amoro.hive.HMSClient;
+import org.apache.amoro.hive.HMSClientPool;
 import org.apache.hadoop.hive.metastore.PartitionDropOptions;
 import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
 import org.apache.hadoop.hive.metastore.api.Partition;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveSchemaUtil.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveSchemaUtil.java
similarity index 99%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveSchemaUtil.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveSchemaUtil.java
index 1df6144ba..3bda4fae9 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveSchemaUtil.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveSchemaUtil.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Table;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveTableUtil.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveTableUtil.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveTableUtil.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveTableUtil.java
index a7658e1c2..73dd0e69e 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/HiveTableUtil.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/HiveTableUtil.java
@@ -16,12 +16,12 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
-import com.netease.arctic.hive.HMSClientPool;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.TableIdentifier;
 import com.netease.arctic.utils.IdGenerator;
+import org.apache.amoro.hive.HMSClientPool;
 import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
 import org.apache.hadoop.hive.metastore.api.SerDeInfo;
 import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/TableTypeUtil.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/TableTypeUtil.java
similarity index 91%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/TableTypeUtil.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/TableTypeUtil.java
index 95aa9abdf..22ce05a10 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/TableTypeUtil.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/TableTypeUtil.java
@@ -16,10 +16,10 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.table.ArcticTable;
+import org.apache.amoro.hive.table.SupportHive;
 
 public class TableTypeUtil {
   public static boolean isHive(ArcticTable arcticTable) {
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/TimeUtil.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/TimeUtil.java
similarity index 97%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/TimeUtil.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/TimeUtil.java
index 118234ebb..d335ad4f1 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/TimeUtil.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/TimeUtil.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import java.time.Instant;
 
diff --git a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/UpgradeHiveTableUtil.java b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/UpgradeHiveTableUtil.java
similarity index 98%
rename from mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/UpgradeHiveTableUtil.java
rename to mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/UpgradeHiveTableUtil.java
index d2f796642..a53677755 100644
--- a/mixed-format/hive/src/main/java/com/netease/arctic/hive/utils/UpgradeHiveTableUtil.java
+++ b/mixed-format/hive/src/main/java/org/apache/amoro/hive/utils/UpgradeHiveTableUtil.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import static com.netease.arctic.table.TableProperties.BASE_FILE_FORMAT;
 import static com.netease.arctic.table.TableProperties.CHANGE_FILE_FORMAT;
@@ -24,10 +24,6 @@ import static com.netease.arctic.table.TableProperties.DEFAULT_FILE_FORMAT;
 import static com.netease.arctic.table.TableProperties.FILE_FORMAT_ORC;
 import static com.netease.arctic.table.TableProperties.FILE_FORMAT_PARQUET;
 
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.catalog.ArcticHiveCatalog;
-import com.netease.arctic.hive.table.SupportHive;
-import com.netease.arctic.hive.table.UnkeyedHiveTable;
 import com.netease.arctic.io.ArcticHadoopFileIO;
 import com.netease.arctic.op.UpdatePartitionProperties;
 import com.netease.arctic.properties.HiveTableProperties;
@@ -35,6 +31,10 @@ import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableIdentifier;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.catalog.ArcticHiveCatalog;
+import org.apache.amoro.hive.table.SupportHive;
+import org.apache.amoro.hive.table.UnkeyedHiveTable;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Partition;
 import org.apache.hadoop.hive.metastore.api.SerDeInfo;
diff --git a/mixed-format/hive/src/main/java/org/apache/iceberg/parquet/AdaptHiveParquetConversions.java b/mixed-format/hive/src/main/java/org/apache/iceberg/parquet/AdaptHiveParquetConversions.java
index 14c8ee148..aee96a020 100644
--- a/mixed-format/hive/src/main/java/org/apache/iceberg/parquet/AdaptHiveParquetConversions.java
+++ b/mixed-format/hive/src/main/java/org/apache/iceberg/parquet/AdaptHiveParquetConversions.java
@@ -20,7 +20,7 @@ package org.apache.iceberg.parquet;
 
 import static java.time.Instant.EPOCH;
 
-import com.netease.arctic.hive.utils.TimeUtil;
+import org.apache.amoro.hive.utils.TimeUtil;
 import org.apache.iceberg.expressions.Literal;
 import org.apache.iceberg.types.Type;
 import org.apache.iceberg.types.Types;
diff --git a/mixed-format/spark/common/src/main/java/com/netease/arctic/spark/mixed/MixedFormatSparkUtil.java b/mixed-format/spark/common/src/main/java/com/netease/arctic/spark/mixed/MixedFormatSparkUtil.java
index 6d77e4385..49106fc48 100644
--- a/mixed-format/spark/common/src/main/java/com/netease/arctic/spark/mixed/MixedFormatSparkUtil.java
+++ b/mixed-format/spark/common/src/main/java/com/netease/arctic/spark/mixed/MixedFormatSparkUtil.java
@@ -19,9 +19,9 @@
 package com.netease.arctic.spark.mixed;
 
 import com.netease.arctic.TableFormat;
-import com.netease.arctic.hive.utils.CompatibleHivePropertyUtil;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.utils.CompatibleHivePropertyUtil;
 import org.apache.spark.sql.connector.catalog.Table;
 
 /** Util class for mixed format in spark engines. */
diff --git a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/ArcticSparkCatalog.java b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/ArcticSparkCatalog.java
index bea58df24..cca489333 100644
--- a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/ArcticSparkCatalog.java
+++ b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/ArcticSparkCatalog.java
@@ -22,7 +22,6 @@ import static com.netease.arctic.spark.mixed.SparkSQLProperties.USE_TIMESTAMP_WI
 import static com.netease.arctic.spark.mixed.SparkSQLProperties.USE_TIMESTAMP_WITHOUT_TIME_ZONE_IN_NEW_TABLES_DEFAULT;
 import static org.apache.iceberg.spark.SparkSQLProperties.HANDLE_TIMESTAMP_WITHOUT_TIMEZONE;
 
-import com.netease.arctic.hive.utils.CatalogUtil;
 import com.netease.arctic.spark.mixed.MixedSparkCatalogBase;
 import com.netease.arctic.spark.mixed.MixedTableStoreType;
 import com.netease.arctic.spark.table.ArcticSparkChangeTable;
@@ -34,6 +33,7 @@ import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableBuilder;
 import com.netease.arctic.table.TableIdentifier;
 import com.netease.arctic.table.UnkeyedTable;
+import org.apache.amoro.hive.utils.CatalogUtil;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.Transaction;
diff --git a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/io/TaskWriters.java b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/io/TaskWriters.java
index f7f546f52..b6d56b53e 100644
--- a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/io/TaskWriters.java
+++ b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/io/TaskWriters.java
@@ -18,8 +18,6 @@
 
 package com.netease.arctic.spark.io;
 
-import com.netease.arctic.hive.io.writer.AdaptHiveOutputFileFactory;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.io.writer.ChangeTaskWriter;
 import com.netease.arctic.io.writer.CommonOutputFileFactory;
 import com.netease.arctic.io.writer.OutputFileFactory;
@@ -30,6 +28,8 @@ import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.SchemaUtil;
+import org.apache.amoro.hive.io.writer.AdaptHiveOutputFileFactory;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.FileFormat;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.Table;
diff --git a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkKeyedDataReader.java b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkKeyedDataReader.java
index ad127cce3..00b0e9636 100644
--- a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkKeyedDataReader.java
+++ b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkKeyedDataReader.java
@@ -18,11 +18,11 @@
 
 package com.netease.arctic.spark.reader;
 
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.spark.SparkInternalRowWrapper;
 import com.netease.arctic.spark.util.ArcticSparkUtils;
 import com.netease.arctic.table.PrimaryKeySpec;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.StructLike;
 import org.apache.iceberg.orc.OrcRowReader;
diff --git a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkUnkeyedDataReader.java b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkUnkeyedDataReader.java
index 948eea062..9f01ce295 100644
--- a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkUnkeyedDataReader.java
+++ b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkUnkeyedDataReader.java
@@ -18,10 +18,10 @@
 
 package com.netease.arctic.spark.reader;
 
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveUnkeyedDataReader;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.spark.SparkInternalRowWrapper;
 import com.netease.arctic.spark.util.ArcticSparkUtils;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveUnkeyedDataReader;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.StructLike;
 import org.apache.iceberg.orc.OrcRowReader;
diff --git a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/table/ArcticSparkTable.java b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/table/ArcticSparkTable.java
index c4c374c94..20bb023db 100644
--- a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/table/ArcticSparkTable.java
+++ b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/table/ArcticSparkTable.java
@@ -19,11 +19,11 @@
 package com.netease.arctic.spark.table;
 
 import com.netease.arctic.catalog.ArcticCatalog;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.spark.reader.SparkScanBuilder;
 import com.netease.arctic.spark.writer.ArcticSparkWriteBuilder;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
 import org.apache.iceberg.relocated.com.google.common.collect.ImmutableSet;
diff --git a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/writer/KeyedSparkBatchWrite.java b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/writer/KeyedSparkBatchWrite.java
index b71b99b28..f42855e75 100644
--- a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/writer/KeyedSparkBatchWrite.java
+++ b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/writer/KeyedSparkBatchWrite.java
@@ -18,8 +18,8 @@
 
 package com.netease.arctic.spark.writer;
 
-import static com.netease.arctic.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 import static com.netease.arctic.spark.writer.WriteTaskCommit.files;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 import static org.apache.iceberg.TableProperties.COMMIT_MAX_RETRY_WAIT_MS;
 import static org.apache.iceberg.TableProperties.COMMIT_MAX_RETRY_WAIT_MS_DEFAULT;
 import static org.apache.iceberg.TableProperties.COMMIT_MIN_RETRY_WAIT_MS;
@@ -32,7 +32,6 @@ import static org.apache.iceberg.TableProperties.COMMIT_TOTAL_RETRY_TIME_MS_DEFA
 import com.netease.arctic.api.BlockableOperation;
 import com.netease.arctic.api.OperationConflictException;
 import com.netease.arctic.catalog.ArcticCatalog;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.op.OverwriteBaseFiles;
 import com.netease.arctic.op.RewritePartitions;
 import com.netease.arctic.spark.io.TaskWriters;
@@ -40,6 +39,7 @@ import com.netease.arctic.spark.sql.utils.RowDeltaUtils;
 import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.blocker.Blocker;
 import com.netease.arctic.table.blocker.TableBlockerManager;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.expressions.Expression;
diff --git a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/writer/UnkeyedSparkBatchWrite.java b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/writer/UnkeyedSparkBatchWrite.java
index fae8235d7..5d6f20cea 100644
--- a/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/writer/UnkeyedSparkBatchWrite.java
+++ b/mixed-format/spark/v3.2/spark/src/main/java/com/netease/arctic/spark/writer/UnkeyedSparkBatchWrite.java
@@ -18,8 +18,8 @@
 
 package com.netease.arctic.spark.writer;
 
-import static com.netease.arctic.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 import static com.netease.arctic.spark.writer.WriteTaskCommit.files;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 import static org.apache.iceberg.TableProperties.COMMIT_MAX_RETRY_WAIT_MS;
 import static org.apache.iceberg.TableProperties.COMMIT_MAX_RETRY_WAIT_MS_DEFAULT;
 import static org.apache.iceberg.TableProperties.COMMIT_MIN_RETRY_WAIT_MS;
@@ -32,11 +32,11 @@ import static org.apache.iceberg.TableProperties.COMMIT_TOTAL_RETRY_TIME_MS_DEFA
 import com.netease.arctic.api.BlockableOperation;
 import com.netease.arctic.api.OperationConflictException;
 import com.netease.arctic.catalog.ArcticCatalog;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.spark.io.TaskWriters;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.table.blocker.Blocker;
 import com.netease.arctic.table.blocker.TableBlockerManager;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.DeleteFile;
diff --git a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/ArcticSparkCatalog.java b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/ArcticSparkCatalog.java
index 8f3da463e..c40545a88 100644
--- a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/ArcticSparkCatalog.java
+++ b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/ArcticSparkCatalog.java
@@ -22,7 +22,6 @@ import static com.netease.arctic.spark.mixed.SparkSQLProperties.USE_TIMESTAMP_WI
 import static com.netease.arctic.spark.mixed.SparkSQLProperties.USE_TIMESTAMP_WITHOUT_TIME_ZONE_IN_NEW_TABLES_DEFAULT;
 import static org.apache.iceberg.spark.SparkSQLProperties.HANDLE_TIMESTAMP_WITHOUT_TIMEZONE;
 
-import com.netease.arctic.hive.utils.CatalogUtil;
 import com.netease.arctic.spark.mixed.MixedSparkCatalogBase;
 import com.netease.arctic.spark.mixed.MixedTableStoreType;
 import com.netease.arctic.spark.table.ArcticSparkChangeTable;
@@ -34,6 +33,7 @@ import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableBuilder;
 import com.netease.arctic.table.TableIdentifier;
 import com.netease.arctic.table.UnkeyedTable;
+import org.apache.amoro.hive.utils.CatalogUtil;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.Transaction;
diff --git a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/io/TaskWriters.java b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/io/TaskWriters.java
index f7f546f52..b6d56b53e 100644
--- a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/io/TaskWriters.java
+++ b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/io/TaskWriters.java
@@ -18,8 +18,6 @@
 
 package com.netease.arctic.spark.io;
 
-import com.netease.arctic.hive.io.writer.AdaptHiveOutputFileFactory;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.io.writer.ChangeTaskWriter;
 import com.netease.arctic.io.writer.CommonOutputFileFactory;
 import com.netease.arctic.io.writer.OutputFileFactory;
@@ -30,6 +28,8 @@ import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.SchemaUtil;
+import org.apache.amoro.hive.io.writer.AdaptHiveOutputFileFactory;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.FileFormat;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.Table;
diff --git a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkKeyedDataReader.java b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkKeyedDataReader.java
index ad127cce3..00b0e9636 100644
--- a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkKeyedDataReader.java
+++ b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkKeyedDataReader.java
@@ -18,11 +18,11 @@
 
 package com.netease.arctic.spark.reader;
 
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.spark.SparkInternalRowWrapper;
 import com.netease.arctic.spark.util.ArcticSparkUtils;
 import com.netease.arctic.table.PrimaryKeySpec;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveKeyedDataReader;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.StructLike;
 import org.apache.iceberg.orc.OrcRowReader;
diff --git a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkUnkeyedDataReader.java b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkUnkeyedDataReader.java
index 948eea062..9f01ce295 100644
--- a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkUnkeyedDataReader.java
+++ b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/reader/ArcticSparkUnkeyedDataReader.java
@@ -18,10 +18,10 @@
 
 package com.netease.arctic.spark.reader;
 
-import com.netease.arctic.hive.io.reader.AbstractAdaptHiveUnkeyedDataReader;
 import com.netease.arctic.io.ArcticFileIO;
 import com.netease.arctic.spark.SparkInternalRowWrapper;
 import com.netease.arctic.spark.util.ArcticSparkUtils;
+import org.apache.amoro.hive.io.reader.AbstractAdaptHiveUnkeyedDataReader;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.StructLike;
 import org.apache.iceberg.orc.OrcRowReader;
diff --git a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/table/ArcticSparkTable.java b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/table/ArcticSparkTable.java
index c4c374c94..20bb023db 100644
--- a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/table/ArcticSparkTable.java
+++ b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/table/ArcticSparkTable.java
@@ -19,11 +19,11 @@
 package com.netease.arctic.spark.table;
 
 import com.netease.arctic.catalog.ArcticCatalog;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.spark.reader.SparkScanBuilder;
 import com.netease.arctic.spark.writer.ArcticSparkWriteBuilder;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.relocated.com.google.common.collect.ImmutableMap;
 import org.apache.iceberg.relocated.com.google.common.collect.ImmutableSet;
diff --git a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/writer/KeyedSparkBatchWrite.java b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/writer/KeyedSparkBatchWrite.java
index b71b99b28..f42855e75 100644
--- a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/writer/KeyedSparkBatchWrite.java
+++ b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/writer/KeyedSparkBatchWrite.java
@@ -18,8 +18,8 @@
 
 package com.netease.arctic.spark.writer;
 
-import static com.netease.arctic.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 import static com.netease.arctic.spark.writer.WriteTaskCommit.files;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 import static org.apache.iceberg.TableProperties.COMMIT_MAX_RETRY_WAIT_MS;
 import static org.apache.iceberg.TableProperties.COMMIT_MAX_RETRY_WAIT_MS_DEFAULT;
 import static org.apache.iceberg.TableProperties.COMMIT_MIN_RETRY_WAIT_MS;
@@ -32,7 +32,6 @@ import static org.apache.iceberg.TableProperties.COMMIT_TOTAL_RETRY_TIME_MS_DEFA
 import com.netease.arctic.api.BlockableOperation;
 import com.netease.arctic.api.OperationConflictException;
 import com.netease.arctic.catalog.ArcticCatalog;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.op.OverwriteBaseFiles;
 import com.netease.arctic.op.RewritePartitions;
 import com.netease.arctic.spark.io.TaskWriters;
@@ -40,6 +39,7 @@ import com.netease.arctic.spark.sql.utils.RowDeltaUtils;
 import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.blocker.Blocker;
 import com.netease.arctic.table.blocker.TableBlockerManager;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.expressions.Expression;
diff --git a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/writer/UnkeyedSparkBatchWrite.java b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/writer/UnkeyedSparkBatchWrite.java
index fae8235d7..5d6f20cea 100644
--- a/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/writer/UnkeyedSparkBatchWrite.java
+++ b/mixed-format/spark/v3.3/spark/src/main/java/com/netease/arctic/spark/writer/UnkeyedSparkBatchWrite.java
@@ -18,8 +18,8 @@
 
 package com.netease.arctic.spark.writer;
 
-import static com.netease.arctic.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 import static com.netease.arctic.spark.writer.WriteTaskCommit.files;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 import static org.apache.iceberg.TableProperties.COMMIT_MAX_RETRY_WAIT_MS;
 import static org.apache.iceberg.TableProperties.COMMIT_MAX_RETRY_WAIT_MS_DEFAULT;
 import static org.apache.iceberg.TableProperties.COMMIT_MIN_RETRY_WAIT_MS;
@@ -32,11 +32,11 @@ import static org.apache.iceberg.TableProperties.COMMIT_TOTAL_RETRY_TIME_MS_DEFA
 import com.netease.arctic.api.BlockableOperation;
 import com.netease.arctic.api.OperationConflictException;
 import com.netease.arctic.catalog.ArcticCatalog;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.spark.io.TaskWriters;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.table.blocker.Blocker;
 import com.netease.arctic.table.blocker.TableBlockerManager;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.DeleteFile;
diff --git a/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedConnectorPageSource.java b/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedConnectorPageSource.java
index 85ddfb702..ad36a2f2b 100644
--- a/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedConnectorPageSource.java
+++ b/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedConnectorPageSource.java
@@ -26,7 +26,6 @@ import static org.apache.iceberg.relocated.com.google.common.base.Throwables.thr
 
 import com.netease.arctic.data.DataFileType;
 import com.netease.arctic.data.PrimaryKeyedFile;
-import com.netease.arctic.hive.io.reader.AdaptHiveArcticDeleteFilter;
 import com.netease.arctic.scan.ArcticFileScanTask;
 import com.netease.arctic.table.MetadataColumns;
 import com.netease.arctic.trino.delete.TrinoDeleteFile;
@@ -44,6 +43,7 @@ import io.trino.spi.connector.ConnectorTransactionHandle;
 import io.trino.spi.connector.DynamicFilter;
 import io.trino.spi.type.Type;
 import io.trino.spi.type.TypeManager;
+import org.apache.amoro.hive.io.reader.AdaptHiveArcticDeleteFilter;
 import org.apache.iceberg.io.CloseableIterable;
 import org.apache.iceberg.relocated.com.google.common.collect.ImmutableList;
 import org.joda.time.DateTimeZone;
diff --git a/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedDeleteFilter.java b/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedDeleteFilter.java
index 32b0d584d..867008375 100644
--- a/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedDeleteFilter.java
+++ b/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedDeleteFilter.java
@@ -21,11 +21,11 @@ package com.netease.arctic.trino.keyed;
 import static io.trino.plugin.iceberg.TypeConverter.toIcebergType;
 import static org.apache.iceberg.relocated.com.google.common.collect.ImmutableList.toImmutableList;
 
-import com.netease.arctic.hive.io.reader.AdaptHiveArcticDeleteFilter;
 import com.netease.arctic.scan.KeyedTableScanTask;
 import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.trino.delete.TrinoRow;
 import io.trino.plugin.iceberg.IcebergColumnHandle;
+import org.apache.amoro.hive.io.reader.AdaptHiveArcticDeleteFilter;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.StructLike;
 import org.apache.iceberg.io.FileIO;
diff --git a/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedPageSourceProvider.java b/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedPageSourceProvider.java
index de32bf98b..9a187dc3a 100644
--- a/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedPageSourceProvider.java
+++ b/mixed-format/trino/src/main/java/com/netease/arctic/trino/keyed/KeyedPageSourceProvider.java
@@ -20,7 +20,6 @@ package com.netease.arctic.trino.keyed;
 
 import com.google.inject.Inject;
 import com.netease.arctic.data.PrimaryKeyedFile;
-import com.netease.arctic.hive.io.reader.AdaptHiveArcticDeleteFilter;
 import com.netease.arctic.scan.ArcticFileScanTask;
 import com.netease.arctic.scan.KeyedTableScanTask;
 import com.netease.arctic.trino.delete.TrinoRow;
@@ -37,6 +36,7 @@ import io.trino.spi.connector.ConnectorTableHandle;
 import io.trino.spi.connector.ConnectorTransactionHandle;
 import io.trino.spi.connector.DynamicFilter;
 import io.trino.spi.type.TypeManager;
+import org.apache.amoro.hive.io.reader.AdaptHiveArcticDeleteFilter;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.SchemaParser;
 import org.apache.iceberg.relocated.com.google.common.collect.ImmutableList;
diff --git a/mixed-format/trino/src/main/java/com/netease/arctic/trino/unkeyed/IcebergMetadata.java b/mixed-format/trino/src/main/java/com/netease/arctic/trino/unkeyed/IcebergMetadata.java
index 0bdc5d4ab..5c0e07ba4 100644
--- a/mixed-format/trino/src/main/java/com/netease/arctic/trino/unkeyed/IcebergMetadata.java
+++ b/mixed-format/trino/src/main/java/com/netease/arctic/trino/unkeyed/IcebergMetadata.java
@@ -102,7 +102,6 @@ import static org.apache.iceberg.relocated.com.google.common.collect.ImmutableSe
 import static org.apache.iceberg.relocated.com.google.common.collect.Maps.transformValues;
 import static org.apache.iceberg.types.TypeUtil.indexParents;
 
-import com.netease.arctic.hive.utils.TableTypeUtil;
 import com.netease.arctic.table.ArcticTable;
 import io.airlift.json.JsonCodec;
 import io.airlift.log.Logger;
@@ -199,6 +198,7 @@ import io.trino.spi.statistics.ComputedStatistics;
 import io.trino.spi.statistics.TableStatistics;
 import io.trino.spi.statistics.TableStatisticsMetadata;
 import io.trino.spi.type.TypeManager;
+import org.apache.amoro.hive.utils.TableTypeUtil;
 import org.apache.datasketches.theta.CompactSketch;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.ContentFile;


Test patch:
diff --git a/ams/server/src/test/java/com/netease/arctic/server/AmsEnvironment.java b/ams/server/src/test/java/com/netease/arctic/server/AmsEnvironment.java
index 3b8f14cd9..9fd5fefa7 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/AmsEnvironment.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/AmsEnvironment.java
@@ -26,13 +26,13 @@ import com.netease.arctic.api.resource.ResourceGroup;
 import com.netease.arctic.catalog.ArcticCatalog;
 import com.netease.arctic.catalog.CatalogLoader;
 import com.netease.arctic.catalog.CatalogTestHelpers;
-import com.netease.arctic.hive.HMSMockServer;
 import com.netease.arctic.optimizer.standalone.StandaloneOptimizer;
 import com.netease.arctic.properties.CatalogMetaProperties;
 import com.netease.arctic.server.resource.OptimizerManager;
 import com.netease.arctic.server.resource.ResourceContainers;
 import com.netease.arctic.server.table.DefaultTableService;
 import com.netease.arctic.table.TableIdentifier;
+import org.apache.amoro.hive.HMSMockServer;
 import org.apache.commons.io.FileUtils;
 import org.apache.curator.shaded.com.google.common.io.MoreFiles;
 import org.apache.curator.shaded.com.google.common.io.RecursiveDeleteOption;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/catalog/TableCatalogTestBase.java b/ams/server/src/test/java/com/netease/arctic/server/catalog/TableCatalogTestBase.java
index 19f2b697b..f779458f7 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/catalog/TableCatalogTestBase.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/catalog/TableCatalogTestBase.java
@@ -20,8 +20,8 @@ package com.netease.arctic.server.catalog;
 
 import com.netease.arctic.AmoroCatalog;
 import com.netease.arctic.formats.AmoroCatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
 import com.netease.arctic.server.table.TableServiceTestBase;
+import org.apache.amoro.hive.TestHMS;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/catalog/TestServerCatalog.java b/ams/server/src/test/java/com/netease/arctic/server/catalog/TestServerCatalog.java
index 4c5b403ac..9f54cf92a 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/catalog/TestServerCatalog.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/catalog/TestServerCatalog.java
@@ -23,10 +23,10 @@ import com.netease.arctic.formats.AmoroCatalogTestHelper;
 import com.netease.arctic.formats.IcebergHadoopCatalogTestHelper;
 import com.netease.arctic.formats.MixedIcebergHadoopCatalogTestHelper;
 import com.netease.arctic.formats.PaimonHadoopCatalogTestHelper;
-import com.netease.arctic.hive.formats.IcebergHiveCatalogTestHelper;
-import com.netease.arctic.hive.formats.MixedIcebergHiveCatalogTestHelper;
-import com.netease.arctic.hive.formats.PaimonHiveCatalogTestHelper;
 import com.netease.arctic.properties.CatalogMetaProperties;
+import org.apache.amoro.hive.formats.IcebergHiveCatalogTestHelper;
+import org.apache.amoro.hive.formats.MixedIcebergHiveCatalogTestHelper;
+import org.apache.amoro.hive.formats.PaimonHiveCatalogTestHelper;
 import org.junit.Assert;
 import org.junit.Assume;
 import org.junit.Before;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/dashboard/TestIcebergServerTableDescriptor.java b/ams/server/src/test/java/com/netease/arctic/server/dashboard/TestIcebergServerTableDescriptor.java
index 190cae0fc..fc31fdfdd 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/dashboard/TestIcebergServerTableDescriptor.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/dashboard/TestIcebergServerTableDescriptor.java
@@ -20,7 +20,7 @@ package com.netease.arctic.server.dashboard;
 
 import com.netease.arctic.formats.AmoroCatalogTestHelper;
 import com.netease.arctic.formats.IcebergHadoopCatalogTestHelper;
-import com.netease.arctic.hive.formats.IcebergHiveCatalogTestHelper;
+import org.apache.amoro.hive.formats.IcebergHiveCatalogTestHelper;
 import org.apache.iceberg.Table;
 import org.apache.iceberg.types.Types;
 import org.junit.runner.RunWith;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/dashboard/TestPaimonServerTableDescriptor.java b/ams/server/src/test/java/com/netease/arctic/server/dashboard/TestPaimonServerTableDescriptor.java
index dd74868ea..48b9a1e58 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/dashboard/TestPaimonServerTableDescriptor.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/dashboard/TestPaimonServerTableDescriptor.java
@@ -20,7 +20,7 @@ package com.netease.arctic.server.dashboard;
 
 import com.netease.arctic.formats.AmoroCatalogTestHelper;
 import com.netease.arctic.formats.PaimonHadoopCatalogTestHelper;
-import com.netease.arctic.hive.formats.PaimonHiveCatalogTestHelper;
+import org.apache.amoro.hive.formats.PaimonHiveCatalogTestHelper;
 import org.apache.paimon.catalog.Catalog;
 import org.apache.paimon.catalog.Identifier;
 import org.apache.paimon.schema.SchemaChange;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/AbstractOptimizingTest.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/AbstractOptimizingTest.java
index 40c1663d2..cf062e7ea 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/AbstractOptimizingTest.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/AbstractOptimizingTest.java
@@ -19,13 +19,13 @@
 package com.netease.arctic.server.optimizing;
 
 import com.netease.arctic.data.ChangeAction;
-import com.netease.arctic.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
 import com.netease.arctic.io.MixedDataTestHelpers;
 import com.netease.arctic.server.AmsEnvironment;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.table.WriteOperationKind;
+import org.apache.amoro.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.DeleteFile;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/TestMixedHiveOptimizing.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/TestMixedHiveOptimizing.java
index 0255160a7..546a0598c 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/TestMixedHiveOptimizing.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/TestMixedHiveOptimizing.java
@@ -18,12 +18,12 @@
 
 package com.netease.arctic.server.optimizing;
 
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.io.ArcticHadoopFileIO;
 import com.netease.arctic.io.MixedDataTestHelpers;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;
 import org.apache.hadoop.hive.metastore.api.Table;
 import org.apache.iceberg.AppendFiles;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/CompleteOptimizingFlow.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/CompleteOptimizingFlow.java
index ce96f7397..762a7b947 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/CompleteOptimizingFlow.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/CompleteOptimizingFlow.java
@@ -28,7 +28,6 @@ import com.netease.arctic.api.OptimizerProperties;
 import com.netease.arctic.api.ServerTableIdentifier;
 import com.netease.arctic.api.config.OptimizingConfig;
 import com.netease.arctic.api.config.TableConfiguration;
-import com.netease.arctic.hive.optimizing.MixFormatRewriteExecutor;
 import com.netease.arctic.optimizing.IcebergRewriteExecutor;
 import com.netease.arctic.optimizing.OptimizingExecutor;
 import com.netease.arctic.optimizing.OptimizingInputProperties;
@@ -45,6 +44,7 @@ import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.utils.ArcticDataFiles;
 import com.netease.arctic.utils.TablePropertyUtil;
 import com.netease.arctic.utils.map.StructLikeCollections;
+import org.apache.amoro.hive.optimizing.MixFormatRewriteExecutor;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.StructLike;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/DataReader.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/DataReader.java
index 285198d51..cab0e29c3 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/DataReader.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/DataReader.java
@@ -18,13 +18,13 @@
 
 package com.netease.arctic.server.optimizing.flow;
 
-import com.netease.arctic.hive.io.reader.AdaptHiveGenericKeyedDataReader;
-import com.netease.arctic.hive.io.reader.AdaptHiveGenericUnkeyedDataReader;
 import com.netease.arctic.scan.CombinedScanTask;
 import com.netease.arctic.scan.KeyedTableScanTask;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.UnkeyedTable;
+import org.apache.amoro.hive.io.reader.AdaptHiveGenericKeyedDataReader;
+import org.apache.amoro.hive.io.reader.AdaptHiveGenericUnkeyedDataReader;
 import org.apache.iceberg.FileScanTask;
 import org.apache.iceberg.data.IdentityPartitionConverters;
 import org.apache.iceberg.data.Record;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/TestKeyedContinuousOptimizing.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/TestKeyedContinuousOptimizing.java
index c2e48359e..98c56764f 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/TestKeyedContinuousOptimizing.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/TestKeyedContinuousOptimizing.java
@@ -27,9 +27,6 @@ import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.BasicCatalogTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
 import com.netease.arctic.catalog.TableTestBase;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.io.reader.CombinedDeleteFilter;
 import com.netease.arctic.server.optimizing.flow.checker.DataConcurrencyChecker;
 import com.netease.arctic.server.optimizing.flow.checker.FullOptimizingMove2HiveChecker;
@@ -38,6 +35,9 @@ import com.netease.arctic.server.optimizing.flow.checker.MinorOptimizingCheck;
 import com.netease.arctic.server.optimizing.flow.checker.OptimizingCountChecker;
 import com.netease.arctic.server.optimizing.flow.view.KeyedTableDataView;
 import com.netease.arctic.table.ArcticTable;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/TestUnKeyedContinuousOptimizing.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/TestUnKeyedContinuousOptimizing.java
index 8f65340bf..dd18461bf 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/TestUnKeyedContinuousOptimizing.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/TestUnKeyedContinuousOptimizing.java
@@ -27,9 +27,6 @@ import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.BasicCatalogTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
 import com.netease.arctic.catalog.TableTestBase;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.server.optimizing.flow.checker.DataConcurrencyChecker;
 import com.netease.arctic.server.optimizing.flow.checker.FullOptimizingMove2HiveChecker;
 import com.netease.arctic.server.optimizing.flow.checker.FullOptimizingWrite2HiveChecker;
@@ -37,6 +34,9 @@ import com.netease.arctic.server.optimizing.flow.checker.MinorOptimizingCheck;
 import com.netease.arctic.server.optimizing.flow.checker.OptimizingCountChecker;
 import com.netease.arctic.server.optimizing.flow.view.UnKeyedTableDataView;
 import com.netease.arctic.table.ArcticTable;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/checker/AbstractHiveChecker.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/checker/AbstractHiveChecker.java
index 43f082a0f..8ec7eca5c 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/checker/AbstractHiveChecker.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/flow/checker/AbstractHiveChecker.java
@@ -18,14 +18,14 @@
 
 package com.netease.arctic.server.optimizing.flow.checker;
 
-import com.netease.arctic.hive.HMSClientPool;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.server.optimizing.UnKeyedTableCommit;
 import com.netease.arctic.server.optimizing.flow.view.MatchResult;
 import com.netease.arctic.server.optimizing.flow.view.TableDataView;
 import com.netease.arctic.server.optimizing.plan.OptimizingPlanner;
 import com.netease.arctic.server.optimizing.plan.TaskDescriptor;
 import com.netease.arctic.table.ArcticTable;
+import org.apache.amoro.hive.HMSClientPool;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.hadoop.hive.metastore.api.Partition;
 import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
 import org.apache.iceberg.data.Record;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestDataExpireHive.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestDataExpireHive.java
index b8c02ddab..be41291f8 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestDataExpireHive.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestDataExpireHive.java
@@ -21,10 +21,10 @@ package com.netease.arctic.server.optimizing.maintainer;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.io.MixedDataTestHelpers;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.apache.iceberg.data.Record;
 import org.junit.ClassRule;
 import org.junit.runner.RunWith;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestOrphanFileCleanHive.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestOrphanFileCleanHive.java
index 12bde06b2..4ada536b9 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestOrphanFileCleanHive.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestOrphanFileCleanHive.java
@@ -23,10 +23,10 @@ import static com.netease.arctic.server.optimizing.maintainer.IcebergTableMainta
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.table.SupportHive;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.io.OutputFile;
 import org.junit.Assert;
 import org.junit.ClassRule;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestOrphanFileCleanIceberg.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestOrphanFileCleanIceberg.java
index 11dd01725..d9b0dc761 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestOrphanFileCleanIceberg.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestOrphanFileCleanIceberg.java
@@ -23,9 +23,9 @@ import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.BasicCatalogTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
 import com.netease.arctic.io.writer.SortedPosDeleteWriter;
 import com.netease.arctic.table.UnkeyedTable;
+import org.apache.amoro.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.DeleteFile;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestSnapshotExpireHive.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestSnapshotExpireHive.java
index a9cff3d45..e1e208884 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestSnapshotExpireHive.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/maintainer/TestSnapshotExpireHive.java
@@ -21,14 +21,14 @@ package com.netease.arctic.server.optimizing.maintainer;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.io.HiveDataTestHelpers;
-import com.netease.arctic.hive.utils.HiveTableUtil;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.table.UnkeyedTable;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.io.HiveDataTestHelpers;
+import org.apache.amoro.hive.utils.HiveTableUtil;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.DeleteFiles;
 import org.apache.iceberg.ReplacePartitions;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/MixedTablePlanTestBase.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/MixedTablePlanTestBase.java
index 6e5226a0a..fc8ecf9eb 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/MixedTablePlanTestBase.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/MixedTablePlanTestBase.java
@@ -25,7 +25,6 @@ import com.netease.arctic.catalog.CatalogTestHelper;
 import com.netease.arctic.catalog.TableTestBase;
 import com.netease.arctic.data.DataTreeNode;
 import com.netease.arctic.data.PrimaryKeyedFile;
-import com.netease.arctic.hive.optimizing.MixFormatRewriteExecutorFactory;
 import com.netease.arctic.io.MixedDataTestHelpers;
 import com.netease.arctic.optimizing.OptimizingInputProperties;
 import com.netease.arctic.server.ArcticServiceConstants;
@@ -37,6 +36,7 @@ import com.netease.arctic.server.utils.IcebergTableUtil;
 import com.netease.arctic.table.TableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.ArcticDataFiles;
+import org.apache.amoro.hive.optimizing.MixFormatRewriteExecutorFactory;
 import org.apache.iceberg.ContentFile;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.DeleteFile;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveKeyedPartitionPlan.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveKeyedPartitionPlan.java
index ed40ba083..3efd94d41 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveKeyedPartitionPlan.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveKeyedPartitionPlan.java
@@ -22,13 +22,13 @@ import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
 import com.netease.arctic.data.ChangeAction;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.optimizing.OptimizingInputProperties;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.server.optimizing.OptimizingTestHelpers;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.StructLike;
 import org.apache.iceberg.data.Record;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveOptimizingEvaluator.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveOptimizingEvaluator.java
index 1252f7126..c79bddcc5 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveOptimizingEvaluator.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveOptimizingEvaluator.java
@@ -21,9 +21,9 @@ package com.netease.arctic.server.optimizing.plan;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.junit.ClassRule;
 import org.junit.runners.Parameterized;
 
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveUnkeyedPartitionPlan.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveUnkeyedPartitionPlan.java
index 3380fe6e8..980ba63fa 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveUnkeyedPartitionPlan.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/plan/TestHiveUnkeyedPartitionPlan.java
@@ -21,13 +21,13 @@ package com.netease.arctic.server.optimizing.plan;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.optimizing.OptimizingInputProperties;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.server.optimizing.OptimizingTestHelpers;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.StructLike;
 import org.apache.iceberg.data.Record;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/scan/TestHiveKeyedTableFileScanHelper.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/scan/TestHiveKeyedTableFileScanHelper.java
index 211d4c4ac..e09558f43 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/scan/TestHiveKeyedTableFileScanHelper.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/scan/TestHiveKeyedTableFileScanHelper.java
@@ -21,9 +21,9 @@ package com.netease.arctic.server.optimizing.scan;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.junit.ClassRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/optimizing/scan/TestHiveUnkeyedTableFileScanHelper.java b/ams/server/src/test/java/com/netease/arctic/server/optimizing/scan/TestHiveUnkeyedTableFileScanHelper.java
index db28e1bc4..8e6ab263e 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/optimizing/scan/TestHiveUnkeyedTableFileScanHelper.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/optimizing/scan/TestHiveUnkeyedTableFileScanHelper.java
@@ -21,9 +21,9 @@ package com.netease.arctic.server.optimizing.scan;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.junit.ClassRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/table/AMSTableTestBase.java b/ams/server/src/test/java/com/netease/arctic/server/table/AMSTableTestBase.java
index 1bdb63c3a..988f943dc 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/table/AMSTableTestBase.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/table/AMSTableTestBase.java
@@ -29,12 +29,12 @@ import com.netease.arctic.catalog.ArcticCatalog;
 import com.netease.arctic.catalog.CatalogLoader;
 import com.netease.arctic.catalog.CatalogTestHelper;
 import com.netease.arctic.catalog.MixedTables;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.ArcticHiveCatalog;
 import com.netease.arctic.properties.CatalogMetaProperties;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.utils.ArcticCatalogUtil;
 import com.netease.arctic.utils.ConvertStructUtil;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.ArcticHiveCatalog;
 import org.apache.hadoop.hive.metastore.api.AlreadyExistsException;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.iceberg.catalog.Catalog;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/table/TestCatalogService.java b/ams/server/src/test/java/com/netease/arctic/server/table/TestCatalogService.java
index 9259af7f5..45b1bba37 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/table/TestCatalogService.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/table/TestCatalogService.java
@@ -22,12 +22,12 @@ import com.netease.arctic.TableFormat;
 import com.netease.arctic.TestedCatalogs;
 import com.netease.arctic.api.CatalogMeta;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
 import com.netease.arctic.properties.CatalogMetaProperties;
 import com.netease.arctic.server.exception.AlreadyExistsException;
 import com.netease.arctic.server.exception.IllegalMetadataException;
 import com.netease.arctic.server.exception.ObjectNotExistsException;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
 import org.junit.Assert;
 import org.junit.Assume;
 import org.junit.ClassRule;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/table/TestTableRuntimeHandler.java b/ams/server/src/test/java/com/netease/arctic/server/table/TestTableRuntimeHandler.java
index ed678d176..c4d1fd30a 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/table/TestTableRuntimeHandler.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/table/TestTableRuntimeHandler.java
@@ -27,13 +27,13 @@ import com.netease.arctic.api.config.Configurations;
 import com.netease.arctic.api.config.TableConfiguration;
 import com.netease.arctic.catalog.BasicCatalogTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.server.manager.EventsManager;
 import com.netease.arctic.server.manager.MetricManager;
 import com.netease.arctic.server.optimizing.OptimizingStatus;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.apache.iceberg.relocated.com.google.common.collect.Lists;
 import org.apache.iceberg.util.Pair;
 import org.junit.Assert;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/table/TestTableRuntimeManager.java b/ams/server/src/test/java/com/netease/arctic/server/table/TestTableRuntimeManager.java
index 57507ce20..af50e7e31 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/table/TestTableRuntimeManager.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/table/TestTableRuntimeManager.java
@@ -24,10 +24,10 @@ import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.api.ServerTableIdentifier;
 import com.netease.arctic.catalog.BasicCatalogTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.server.exception.ObjectNotExistsException;
 import com.netease.arctic.table.ArcticTable;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/ams/server/src/test/java/com/netease/arctic/server/table/TestTableService.java b/ams/server/src/test/java/com/netease/arctic/server/table/TestTableService.java
index 42504d5ee..239251749 100644
--- a/ams/server/src/test/java/com/netease/arctic/server/table/TestTableService.java
+++ b/ams/server/src/test/java/com/netease/arctic/server/table/TestTableService.java
@@ -30,13 +30,13 @@ import com.netease.arctic.api.BlockableOperation;
 import com.netease.arctic.api.Blocker;
 import com.netease.arctic.api.TableIdentifier;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.server.ArcticManagementConf;
 import com.netease.arctic.server.exception.AlreadyExistsException;
 import com.netease.arctic.server.exception.BlockerConflictException;
 import com.netease.arctic.server.exception.ObjectNotExistsException;
 import com.netease.arctic.table.blocker.RenewableBlocker;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkAmoroCatalogITCase.java b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkAmoroCatalogITCase.java
index 4673c1acd..1a197a366 100644
--- a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkAmoroCatalogITCase.java
+++ b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkAmoroCatalogITCase.java
@@ -25,9 +25,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import com.netease.arctic.formats.AmoroCatalogTestHelper;
 import com.netease.arctic.formats.PaimonHadoopCatalogTestHelper;
 import com.netease.arctic.formats.paimon.PaimonTable;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.formats.PaimonHiveCatalogTestHelper;
 import org.apache.amoro.flink.table.AmoroCatalogITCaseBase;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.formats.PaimonHiveCatalogTestHelper;
 import org.apache.flink.table.api.TableResult;
 import org.apache.flink.table.catalog.AbstractCatalog;
 import org.apache.flink.table.catalog.Catalog;
diff --git a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkCatalogContext.java b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkCatalogContext.java
index b86df65f3..a8ddc13b9 100644
--- a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkCatalogContext.java
+++ b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkCatalogContext.java
@@ -24,9 +24,9 @@ import static org.apache.amoro.flink.table.descriptors.ArcticValidator.TABLE_FOR
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TestAms;
 import com.netease.arctic.api.CatalogMeta;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
 import org.apache.amoro.flink.catalog.factories.FlinkUnifiedCatalogFactory;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
 import org.apache.flink.configuration.Configuration;
 import org.apache.flink.table.api.DataTypes;
 import org.apache.flink.table.api.Schema;
diff --git a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkUnifiedCatalogITCase.java b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkUnifiedCatalogITCase.java
index 30376038e..6166f6d9b 100644
--- a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkUnifiedCatalogITCase.java
+++ b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/catalog/FlinkUnifiedCatalogITCase.java
@@ -25,10 +25,10 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import com.netease.arctic.BasicTableTestHelper;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
 import com.netease.arctic.table.TableIdentifier;
 import org.apache.amoro.flink.table.CatalogITCaseBase;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
 import org.apache.flink.table.api.TableResult;
 import org.apache.flink.table.catalog.AbstractCatalog;
 import org.apache.flink.table.catalog.Catalog;
diff --git a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/AmoroCatalogITCaseBase.java b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/AmoroCatalogITCaseBase.java
index 182f4ba6b..0aee3f9b5 100644
--- a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/AmoroCatalogITCaseBase.java
+++ b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/AmoroCatalogITCaseBase.java
@@ -23,7 +23,7 @@ import static org.apache.flink.table.api.config.TableConfigOptions.TABLE_DYNAMIC
 import com.netease.arctic.TestAms;
 import com.netease.arctic.formats.AmoroCatalogTestBase;
 import com.netease.arctic.formats.AmoroCatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
+import org.apache.amoro.hive.TestHMS;
 import org.apache.flink.api.common.restartstrategy.RestartStrategies;
 import org.apache.flink.configuration.Configuration;
 import org.apache.flink.runtime.state.StateBackend;
diff --git a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestKeyed.java b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestKeyed.java
index bbd5bd2f2..2c1a3580b 100644
--- a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestKeyed.java
+++ b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestKeyed.java
@@ -30,14 +30,14 @@ import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.BasicCatalogTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.table.TableProperties;
 import org.apache.amoro.flink.FlinkTestBase;
 import org.apache.amoro.flink.kafka.testutils.KafkaContainerTest;
 import org.apache.amoro.flink.util.DataUtil;
 import org.apache.amoro.flink.util.TestUtil;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.flink.streaming.api.datastream.DataStream;
 import org.apache.flink.table.api.ApiExpression;
diff --git a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestTableRefresh.java b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestTableRefresh.java
index df549eccb..ba90d6f5b 100644
--- a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestTableRefresh.java
+++ b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestTableRefresh.java
@@ -26,11 +26,11 @@ import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.BasicCatalogTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.table.ArcticTable;
 import org.apache.amoro.flink.FlinkTestBase;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.apache.iceberg.UpdateProperties;
 import org.junit.Assert;
 import org.junit.ClassRule;
diff --git a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestUnkeyed.java b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestUnkeyed.java
index 00b19eea7..24126c66e 100644
--- a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestUnkeyed.java
+++ b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestUnkeyed.java
@@ -30,15 +30,15 @@ import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.ArcticCatalog;
 import com.netease.arctic.catalog.BasicCatalogTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableIdentifier;
 import org.apache.amoro.flink.FlinkTestBase;
 import org.apache.amoro.flink.kafka.testutils.KafkaContainerTest;
 import org.apache.amoro.flink.util.DataUtil;
 import org.apache.amoro.flink.util.TestUtil;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.apache.flink.table.api.ApiExpression;
 import org.apache.flink.table.api.DataTypes;
 import org.apache.flink.table.api.Table;
diff --git a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestUnkeyedOverwrite.java b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestUnkeyedOverwrite.java
index 62596355d..c752dc9b9 100644
--- a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestUnkeyedOverwrite.java
+++ b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/table/TestUnkeyedOverwrite.java
@@ -23,11 +23,11 @@ import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.BasicCatalogTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import org.apache.amoro.flink.FlinkTestBase;
 import org.apache.amoro.flink.util.DataUtil;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.apache.flink.table.api.ApiExpression;
 import org.apache.flink.table.api.DataTypes;
 import org.apache.flink.table.api.Table;
diff --git a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/write/TestAdaptHiveWriter.java b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/write/TestAdaptHiveWriter.java
index 11146998c..280191afd 100644
--- a/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/write/TestAdaptHiveWriter.java
+++ b/mixed-format/flink/flink-common/src/test/java/org/apache/amoro/flink/write/TestAdaptHiveWriter.java
@@ -24,16 +24,16 @@ import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
 import com.netease.arctic.catalog.TableTestBase;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.table.HiveLocationKind;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.BaseLocationKind;
 import com.netease.arctic.table.ChangeLocationKind;
 import com.netease.arctic.table.LocationKind;
 import com.netease.arctic.table.WriteOperationKind;
 import org.apache.amoro.flink.read.AdaptHiveFlinkParquetReaders;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.table.HiveLocationKind;
 import org.apache.flink.table.data.DecimalData;
 import org.apache.flink.table.data.GenericRowData;
 import org.apache.flink.table.data.RowData;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/HMSMockServer.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/HMSMockServer.java
similarity index 99%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/HMSMockServer.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/HMSMockServer.java
index 0a61f806e..14921a7fb 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/HMSMockServer.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/HMSMockServer.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive;
+package org.apache.amoro.hive;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.hadoop.conf.Configuration;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/MixedHiveTableTestBase.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/MixedHiveTableTestBase.java
similarity index 93%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/MixedHiveTableTestBase.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/MixedHiveTableTestBase.java
index 09409bfb5..c6bbca5fd 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/MixedHiveTableTestBase.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/MixedHiveTableTestBase.java
@@ -16,12 +16,12 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive;
+package org.apache.amoro.hive;
 
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
 import com.netease.arctic.catalog.TableTestBase;
-import com.netease.arctic.hive.table.SupportHive;
+import org.apache.amoro.hive.table.SupportHive;
 
 public class MixedHiveTableTestBase extends TableTestBase {
   public MixedHiveTableTestBase(
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/TestHMS.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/TestHMS.java
similarity index 99%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/TestHMS.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/TestHMS.java
index 47e8a2675..0ea43290f 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/TestHMS.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/TestHMS.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive;
+package org.apache.amoro.hive;
 
 import com.netease.arctic.SingletonResourceUtil;
 import org.apache.hadoop.hive.conf.HiveConf;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/HiveCatalogTestHelper.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/HiveCatalogTestHelper.java
similarity index 98%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/HiveCatalogTestHelper.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/HiveCatalogTestHelper.java
index 526a14440..16779ae13 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/HiveCatalogTestHelper.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/HiveCatalogTestHelper.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.catalog;
+package org.apache.amoro.hive.catalog;
 
 import static org.apache.iceberg.CatalogUtil.ICEBERG_CATALOG_TYPE;
 import static org.apache.iceberg.CatalogUtil.ICEBERG_CATALOG_TYPE_HIVE;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/HiveTableTestHelper.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/HiveTableTestHelper.java
similarity index 98%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/HiveTableTestHelper.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/HiveTableTestHelper.java
index 3edc860e3..b0f90ee9a 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/HiveTableTestHelper.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/HiveTableTestHelper.java
@@ -16,17 +16,17 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.catalog;
+package org.apache.amoro.hive.catalog;
 
 import static com.netease.arctic.table.TableProperties.DEFAULT_FILE_FORMAT_DEFAULT;
 
 import com.netease.arctic.BasicTableTestHelper;
 import com.netease.arctic.data.ChangeAction;
-import com.netease.arctic.hive.io.HiveDataTestHelpers;
 import com.netease.arctic.io.MixedDataTestHelpers;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.PrimaryKeySpec;
+import org.apache.amoro.hive.io.HiveDataTestHelpers;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.Schema;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/TestHiveCatalogLoader.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/TestHiveCatalogLoader.java
similarity index 97%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/TestHiveCatalogLoader.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/TestHiveCatalogLoader.java
index 61d673e2a..58d3ecfed 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/TestHiveCatalogLoader.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/TestHiveCatalogLoader.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.catalog;
+package org.apache.amoro.hive.catalog;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TestAms;
@@ -24,8 +24,8 @@ import com.netease.arctic.api.CatalogMeta;
 import com.netease.arctic.catalog.ArcticCatalog;
 import com.netease.arctic.catalog.CatalogLoader;
 import com.netease.arctic.catalog.CatalogTestHelpers;
-import com.netease.arctic.hive.TestHMS;
 import com.netease.arctic.properties.CatalogMetaProperties;
+import org.apache.amoro.hive.TestHMS;
 import org.apache.iceberg.relocated.com.google.common.collect.Maps;
 import org.junit.Assert;
 import org.junit.ClassRule;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/TestMixedHiveCatalog.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/TestMixedHiveCatalog.java
similarity index 97%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/TestMixedHiveCatalog.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/TestMixedHiveCatalog.java
index e070f6e98..b96cb7dd4 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/catalog/TestMixedHiveCatalog.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/catalog/TestMixedHiveCatalog.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.catalog;
+package org.apache.amoro.hive.catalog;
 
 import static com.netease.arctic.properties.HiveTableProperties.ARCTIC_TABLE_FLAG;
 import static com.netease.arctic.properties.HiveTableProperties.ARCTIC_TABLE_ROOT_LOCATION;
@@ -24,9 +24,9 @@ import static com.netease.arctic.properties.HiveTableProperties.ARCTIC_TABLE_ROO
 import com.netease.arctic.BasicTableTestHelper;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.catalog.TestMixedCatalog;
-import com.netease.arctic.hive.TestHMS;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableIdentifier;
+import org.apache.amoro.hive.TestHMS;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.Table;
 import org.apache.thrift.TException;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/IcebergHiveCatalogTestHelper.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/IcebergHiveCatalogTestHelper.java
similarity index 97%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/IcebergHiveCatalogTestHelper.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/IcebergHiveCatalogTestHelper.java
index fde1d8156..e5852c6f9 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/IcebergHiveCatalogTestHelper.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/IcebergHiveCatalogTestHelper.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.formats;
+package org.apache.amoro.hive.formats;
 
 import com.netease.arctic.formats.IcebergHadoopCatalogTestHelper;
 import com.netease.arctic.properties.CatalogMetaProperties;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/MixedIcebergHiveCatalogTestHelper.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/MixedIcebergHiveCatalogTestHelper.java
similarity index 97%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/MixedIcebergHiveCatalogTestHelper.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/MixedIcebergHiveCatalogTestHelper.java
index f01181bc9..4a225b20e 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/MixedIcebergHiveCatalogTestHelper.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/MixedIcebergHiveCatalogTestHelper.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.formats;
+package org.apache.amoro.hive.formats;
 
 import com.netease.arctic.formats.MixedIcebergHadoopCatalogTestHelper;
 import com.netease.arctic.properties.CatalogMetaProperties;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/PaimonHiveCatalogTestHelper.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/PaimonHiveCatalogTestHelper.java
similarity index 97%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/PaimonHiveCatalogTestHelper.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/PaimonHiveCatalogTestHelper.java
index 0b0b76e29..5fe28d851 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/PaimonHiveCatalogTestHelper.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/PaimonHiveCatalogTestHelper.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.formats;
+package org.apache.amoro.hive.formats;
 
 import com.netease.arctic.formats.PaimonHadoopCatalogTestHelper;
 import com.netease.arctic.properties.CatalogMetaProperties;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/TestIcebergHiveAmoroCatalog.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/TestIcebergHiveAmoroCatalog.java
similarity index 95%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/TestIcebergHiveAmoroCatalog.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/TestIcebergHiveAmoroCatalog.java
index 3115756ad..e141c8ac8 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/TestIcebergHiveAmoroCatalog.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/TestIcebergHiveAmoroCatalog.java
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.formats;
+package org.apache.amoro.hive.formats;
 
 import com.netease.arctic.formats.AmoroCatalogTestHelper;
 import com.netease.arctic.formats.TestIcebergAmoroCatalog;
-import com.netease.arctic.hive.TestHMS;
+import org.apache.amoro.hive.TestHMS;
 import org.junit.ClassRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/TestMixedIcebergHiveAmoroCatalog.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/TestMixedIcebergHiveAmoroCatalog.java
similarity index 95%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/TestMixedIcebergHiveAmoroCatalog.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/TestMixedIcebergHiveAmoroCatalog.java
index da742318e..90f969876 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/TestMixedIcebergHiveAmoroCatalog.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/TestMixedIcebergHiveAmoroCatalog.java
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.formats;
+package org.apache.amoro.hive.formats;
 
 import com.netease.arctic.formats.AmoroCatalogTestHelper;
 import com.netease.arctic.formats.TestMixedIcebergFormatCatalog;
-import com.netease.arctic.hive.TestHMS;
+import org.apache.amoro.hive.TestHMS;
 import org.junit.ClassRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/TestPaimonHiveAmoroCatalog.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/TestPaimonHiveAmoroCatalog.java
similarity index 95%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/TestPaimonHiveAmoroCatalog.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/TestPaimonHiveAmoroCatalog.java
index 2182e6919..527899220 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/formats/TestPaimonHiveAmoroCatalog.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/formats/TestPaimonHiveAmoroCatalog.java
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.formats;
+package org.apache.amoro.hive.formats;
 
 import com.netease.arctic.formats.AmoroCatalogTestHelper;
 import com.netease.arctic.formats.TestPaimonAmoroCatalog;
-import com.netease.arctic.hive.TestHMS;
+import org.apache.amoro.hive.TestHMS;
 import org.junit.ClassRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/HiveDataTestHelpers.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/HiveDataTestHelpers.java
similarity index 96%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/io/HiveDataTestHelpers.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/io/HiveDataTestHelpers.java
index 949c84480..f7b45ace5 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/HiveDataTestHelpers.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/HiveDataTestHelpers.java
@@ -16,14 +16,9 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io;
+package org.apache.amoro.hive.io;
 
 import com.netease.arctic.data.ChangeAction;
-import com.netease.arctic.hive.io.reader.AdaptHiveGenericKeyedDataReader;
-import com.netease.arctic.hive.io.reader.AdaptHiveGenericUnkeyedDataReader;
-import com.netease.arctic.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
-import com.netease.arctic.hive.table.HiveLocationKind;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.io.MixedDataTestHelpers;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.ArcticTable;
@@ -36,6 +31,11 @@ import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.ArcticTableUtil;
 import com.netease.arctic.utils.TableFileUtil;
 import com.netease.arctic.utils.map.StructLikeCollections;
+import org.apache.amoro.hive.io.reader.AdaptHiveGenericKeyedDataReader;
+import org.apache.amoro.hive.io.reader.AdaptHiveGenericUnkeyedDataReader;
+import org.apache.amoro.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
+import org.apache.amoro.hive.table.HiveLocationKind;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.Table;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestHiveTableTrashManagers.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestHiveTableTrashManagers.java
similarity index 91%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestHiveTableTrashManagers.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestHiveTableTrashManagers.java
index a9bd1cf37..362a2c797 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestHiveTableTrashManagers.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestHiveTableTrashManagers.java
@@ -16,15 +16,15 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io;
+package org.apache.amoro.hive.io;
 
 import com.netease.arctic.TableFormat;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.io.TableTrashManagers;
 import com.netease.arctic.io.TestTableTrashManagers;
 import com.netease.arctic.table.TableIdentifier;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.junit.ClassRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestHiveTaskReader.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestHiveTaskReader.java
similarity index 95%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestHiveTaskReader.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestHiveTaskReader.java
index 3676faa2e..e68e07e5d 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestHiveTaskReader.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestHiveTaskReader.java
@@ -16,16 +16,16 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io;
+package org.apache.amoro.hive.io;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.io.TestTaskReader;
 import com.netease.arctic.table.PrimaryKeySpec;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.apache.iceberg.data.Record;
 import org.apache.iceberg.expressions.Expressions;
 import org.apache.iceberg.relocated.com.google.common.collect.Maps;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestHiveTaskWriter.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestHiveTaskWriter.java
similarity index 91%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestHiveTaskWriter.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestHiveTaskWriter.java
index 2d3fe48a6..0446a291a 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestHiveTaskWriter.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestHiveTaskWriter.java
@@ -16,15 +16,15 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io;
+package org.apache.amoro.hive.io;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
 import com.netease.arctic.io.TestTaskWriter;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
 import org.junit.ClassRule;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestImpalaParquet.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestImpalaParquet.java
similarity index 98%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestImpalaParquet.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestImpalaParquet.java
index c2031fcff..ea32a01ce 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/io/TestImpalaParquet.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/io/TestImpalaParquet.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.io;
+package org.apache.amoro.hive.io;
 
 import org.apache.iceberg.Files;
 import org.apache.iceberg.Schema;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestHiveSchemaUpdate.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestHiveSchemaUpdate.java
similarity index 78%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestHiveSchemaUpdate.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestHiveSchemaUpdate.java
index eea16532e..76bb75922 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestHiveSchemaUpdate.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestHiveSchemaUpdate.java
@@ -16,20 +16,16 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
-
-import static com.netease.arctic.hive.catalog.HiveTableTestHelper.COLUMN_NAME_D;
-import static com.netease.arctic.hive.catalog.HiveTableTestHelper.COLUMN_NAME_OP_DAY;
-import static com.netease.arctic.hive.catalog.HiveTableTestHelper.COLUMN_NAME_OP_TIME_WITH_ZONE;
+package org.apache.amoro.hive.op;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
 import com.netease.arctic.catalog.TableTestBase;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.utils.HiveSchemaUtil;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.utils.HiveSchemaUtil;
 import org.apache.hadoop.hive.metastore.api.Table;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.Transaction;
@@ -80,10 +76,14 @@ public class TestHiveSchemaUpdate extends TableTestBase {
             Types.NestedField.required(3, "ts", Types.LongType.get()),
             Types.NestedField.required(4, "op_time", Types.TimestampType.withoutZone()),
             Types.NestedField.required(
-                5, COLUMN_NAME_OP_TIME_WITH_ZONE, Types.TimestampType.withZone()),
-            Types.NestedField.required(6, COLUMN_NAME_D, Types.DecimalType.of(10, 0)),
+                5,
+                HiveTableTestHelper.COLUMN_NAME_OP_TIME_WITH_ZONE,
+                Types.TimestampType.withZone()),
+            Types.NestedField.required(
+                6, HiveTableTestHelper.COLUMN_NAME_D, Types.DecimalType.of(10, 0)),
             Types.NestedField.optional(8, addColumnName, Types.IntegerType.get(), addColumnDoc),
-            Types.NestedField.required(7, COLUMN_NAME_OP_DAY, Types.StringType.get()));
+            Types.NestedField.required(
+                7, HiveTableTestHelper.COLUMN_NAME_OP_DAY, Types.StringType.get()));
     checkTableSchema(expectSchema);
   }
 
@@ -97,9 +97,13 @@ public class TestHiveSchemaUpdate extends TableTestBase {
             Types.NestedField.required(3, "ts", Types.LongType.get()),
             Types.NestedField.required(4, "op_time", Types.TimestampType.withoutZone()),
             Types.NestedField.required(
-                5, COLUMN_NAME_OP_TIME_WITH_ZONE, Types.TimestampType.withZone()),
-            Types.NestedField.required(6, COLUMN_NAME_D, Types.DecimalType.of(10, 0)),
-            Types.NestedField.required(7, COLUMN_NAME_OP_DAY, Types.StringType.get()));
+                5,
+                HiveTableTestHelper.COLUMN_NAME_OP_TIME_WITH_ZONE,
+                Types.TimestampType.withZone()),
+            Types.NestedField.required(
+                6, HiveTableTestHelper.COLUMN_NAME_D, Types.DecimalType.of(10, 0)),
+            Types.NestedField.required(
+                7, HiveTableTestHelper.COLUMN_NAME_OP_DAY, Types.StringType.get()));
     checkTableSchema(expectSchema);
   }
 
@@ -120,10 +124,14 @@ public class TestHiveSchemaUpdate extends TableTestBase {
             Types.NestedField.required(3, "ts", Types.LongType.get()),
             Types.NestedField.required(4, "op_time", Types.TimestampType.withoutZone()),
             Types.NestedField.required(
-                5, COLUMN_NAME_OP_TIME_WITH_ZONE, Types.TimestampType.withZone()),
-            Types.NestedField.required(6, COLUMN_NAME_D, Types.DecimalType.of(10, 0)),
+                5,
+                HiveTableTestHelper.COLUMN_NAME_OP_TIME_WITH_ZONE,
+                Types.TimestampType.withZone()),
+            Types.NestedField.required(
+                6, HiveTableTestHelper.COLUMN_NAME_D, Types.DecimalType.of(10, 0)),
             Types.NestedField.optional(8, addColumnName, Types.IntegerType.get(), addColumnDoc),
-            Types.NestedField.required(7, COLUMN_NAME_OP_DAY, Types.StringType.get()));
+            Types.NestedField.required(
+                7, HiveTableTestHelper.COLUMN_NAME_OP_DAY, Types.StringType.get()));
     checkTableSchema(expectSchema);
   }
 
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestOverwriteFiles.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestOverwriteFiles.java
similarity index 97%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestOverwriteFiles.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestOverwriteFiles.java
index 54d3b6dac..cc3e501ac 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestOverwriteFiles.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestOverwriteFiles.java
@@ -16,22 +16,22 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
-import static com.netease.arctic.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.MixedHiveTableTestBase;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.exceptions.CannotAlterHiveLocationException;
-import com.netease.arctic.hive.io.HiveDataTestHelpers;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.ArcticTableUtil;
+import org.apache.amoro.hive.MixedHiveTableTestBase;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.exceptions.CannotAlterHiveLocationException;
+import org.apache.amoro.hive.io.HiveDataTestHelpers;
 import org.apache.hadoop.hive.metastore.api.Table;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.OverwriteFiles;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestRewriteFiles.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestRewriteFiles.java
similarity index 96%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestRewriteFiles.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestRewriteFiles.java
index 7655a56f0..adbb1f106 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestRewriteFiles.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestRewriteFiles.java
@@ -16,22 +16,22 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
-import static com.netease.arctic.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.MixedHiveTableTestBase;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.exceptions.CannotAlterHiveLocationException;
-import com.netease.arctic.hive.io.HiveDataTestHelpers;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.ArcticTableUtil;
+import org.apache.amoro.hive.MixedHiveTableTestBase;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.exceptions.CannotAlterHiveLocationException;
+import org.apache.amoro.hive.io.HiveDataTestHelpers;
 import org.apache.hadoop.hive.metastore.api.Table;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.OverwriteFiles;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestRewritePartitions.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestRewritePartitions.java
similarity index 95%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestRewritePartitions.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestRewritePartitions.java
index d4f7c2ce3..bb76b7c7f 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestRewritePartitions.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestRewritePartitions.java
@@ -16,21 +16,21 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
-import static com.netease.arctic.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
+import static org.apache.amoro.hive.op.UpdateHiveFiles.DELETE_UNTRACKED_HIVE_FILE;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.MixedHiveTableTestBase;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.io.HiveDataTestHelpers;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.ArcticTableUtil;
+import org.apache.amoro.hive.MixedHiveTableTestBase;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.io.HiveDataTestHelpers;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.OverwriteFiles;
 import org.apache.iceberg.ReplacePartitions;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestSyncHiveMeta.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestSyncHiveMeta.java
similarity index 96%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestSyncHiveMeta.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestSyncHiveMeta.java
index 427fb9b0e..dfb6be9b7 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/TestSyncHiveMeta.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/TestSyncHiveMeta.java
@@ -16,22 +16,22 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TableTestHelper;
 import com.netease.arctic.catalog.CatalogTestHelper;
 import com.netease.arctic.catalog.TableTestBase;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.io.HiveDataTestHelpers;
-import com.netease.arctic.hive.utils.HivePartitionUtil;
-import com.netease.arctic.hive.utils.HiveSchemaUtil;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.ArcticTableUtil;
 import com.netease.arctic.utils.TableFileUtil;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.io.HiveDataTestHelpers;
+import org.apache.amoro.hive.utils.HivePartitionUtil;
+import org.apache.amoro.hive.utils.HiveSchemaUtil;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/UpdateHiveFilesTestHelpers.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/UpdateHiveFilesTestHelpers.java
similarity index 98%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/op/UpdateHiveFilesTestHelpers.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/op/UpdateHiveFilesTestHelpers.java
index 1b102bedf..789bc75a7 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/op/UpdateHiveFilesTestHelpers.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/op/UpdateHiveFilesTestHelpers.java
@@ -16,9 +16,8 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.op;
+package org.apache.amoro.hive.op;
 
-import com.netease.arctic.hive.utils.HivePartitionUtil;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableIdentifier;
@@ -26,6 +25,7 @@ import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.ArcticTableUtil;
 import com.netease.arctic.utils.TableFileUtil;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.utils.HivePartitionUtil;
 import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;
 import org.apache.hadoop.hive.metastore.api.Partition;
 import org.apache.hadoop.hive.metastore.api.Table;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestCompatibleHivePropertyUtil.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestCompatibleHivePropertyUtil.java
similarity index 98%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestCompatibleHivePropertyUtil.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestCompatibleHivePropertyUtil.java
index 43a27a8d3..c94182e4a 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestCompatibleHivePropertyUtil.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestCompatibleHivePropertyUtil.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import com.netease.arctic.properties.HiveTableProperties;
 import org.apache.iceberg.relocated.com.google.common.collect.Maps;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestHiveMetaSynchronizer.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestHiveMetaSynchronizer.java
similarity index 98%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestHiveMetaSynchronizer.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestHiveMetaSynchronizer.java
index f5b64a508..9d59215f5 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestHiveMetaSynchronizer.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestHiveMetaSynchronizer.java
@@ -16,21 +16,21 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import static com.netease.arctic.utils.TablePropertyUtil.EMPTY_STRUCT;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.catalog.TableTestBase;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.io.HiveDataTestHelpers;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.UnkeyedTable;
 import com.netease.arctic.utils.TableFileUtil;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.io.HiveDataTestHelpers;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.hadoop.hive.metastore.api.NoSuchObjectException;
 import org.apache.hadoop.hive.metastore.api.Partition;
 import org.apache.hadoop.hive.metastore.api.PrincipalPrivilegeSet;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestHiveSchemaUtil.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestHiveSchemaUtil.java
similarity index 98%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestHiveSchemaUtil.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestHiveSchemaUtil.java
index b5f9207b7..4ee54f383 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestHiveSchemaUtil.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestHiveSchemaUtil.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.types.Types;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestTimeUtil.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestTimeUtil.java
similarity index 97%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestTimeUtil.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestTimeUtil.java
index 87b4cd877..292807b8e 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestTimeUtil.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestTimeUtil.java
@@ -16,7 +16,7 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestUpgradeHiveTableUtil.java b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestUpgradeHiveTableUtil.java
similarity index 96%
rename from mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestUpgradeHiveTableUtil.java
rename to mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestUpgradeHiveTableUtil.java
index bdf2873e4..64fffbd3d 100644
--- a/mixed-format/hive/src/test/java/com/netease/arctic/hive/utils/TestUpgradeHiveTableUtil.java
+++ b/mixed-format/hive/src/test/java/org/apache/amoro/hive/utils/TestUpgradeHiveTableUtil.java
@@ -16,20 +16,20 @@
  * limitations under the License.
  */
 
-package com.netease.arctic.hive.utils;
+package org.apache.amoro.hive.utils;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.catalog.CatalogTestBase;
 import com.netease.arctic.catalog.CatalogTestHelper;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.ArcticHiveCatalog;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.catalog.HiveTableTestHelper;
-import com.netease.arctic.hive.table.UnkeyedHiveTable;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableIdentifier;
 import com.netease.arctic.utils.TablePropertyUtil;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.ArcticHiveCatalog;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.catalog.HiveTableTestHelper;
+import org.apache.amoro.hive.table.UnkeyedHiveTable;
 import org.apache.hadoop.hive.metastore.TableType;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.metastore.api.Partition;
diff --git a/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/SparkTestContext.java b/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/SparkTestContext.java
index 3ae6029f0..02e65ec6c 100644
--- a/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/SparkTestContext.java
+++ b/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/SparkTestContext.java
@@ -22,10 +22,10 @@ import com.netease.arctic.SingletonResourceUtil;
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.TestAms;
 import com.netease.arctic.api.CatalogMeta;
-import com.netease.arctic.hive.TestHMS;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
 import com.netease.arctic.properties.CatalogMetaProperties;
 import com.netease.arctic.spark.SparkUnifiedCatalog;
+import org.apache.amoro.hive.TestHMS;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.hive.conf.HiveConf;
 import org.apache.hadoop.hive.metastore.HiveMetaStoreClient;
diff --git a/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/Asserts.java b/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/Asserts.java
index f2daf93fa..79dca7dd1 100644
--- a/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/Asserts.java
+++ b/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/Asserts.java
@@ -99,8 +99,7 @@ public class Asserts {
 
   public static void assertHiveColumns(
       Schema expectSchema, PartitionSpec spec, List<FieldSchema> hiveColumns) {
-    Schema schema =
-        com.netease.arctic.hive.utils.HiveSchemaUtil.hiveTableSchema(expectSchema, spec);
+    Schema schema = org.apache.amoro.hive.utils.HiveSchemaUtil.hiveTableSchema(expectSchema, spec);
     Assert.assertEquals(schema.columns().size(), hiveColumns.size());
 
     Streams.zip(hiveColumns.stream(), schema.columns().stream(), Pair::of)
diff --git a/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/TestTable.java b/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/TestTable.java
index 564665e84..137e58826 100644
--- a/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/TestTable.java
+++ b/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/TestTable.java
@@ -19,8 +19,8 @@
 package com.netease.arctic.spark.test.utils;
 
 import com.netease.arctic.TableFormat;
-import com.netease.arctic.hive.utils.HiveSchemaUtil;
 import com.netease.arctic.table.PrimaryKeySpec;
+import org.apache.amoro.hive.utils.HiveSchemaUtil;
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.Schema;
diff --git a/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/TestTableUtil.java b/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/TestTableUtil.java
index a0aa39058..678aab2ed 100644
--- a/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/TestTableUtil.java
+++ b/mixed-format/spark/common/src/test/java/com/netease/arctic/spark/test/utils/TestTableUtil.java
@@ -19,9 +19,6 @@
 package com.netease.arctic.spark.test.utils;
 
 import com.netease.arctic.data.ChangeAction;
-import com.netease.arctic.hive.io.reader.AdaptHiveGenericKeyedDataReader;
-import com.netease.arctic.hive.io.reader.AdaptHiveGenericUnkeyedDataReader;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.io.MixedDataTestHelpers;
 import com.netease.arctic.io.reader.GenericUnkeyedDataReader;
 import com.netease.arctic.io.writer.GenericTaskWriters;
@@ -31,6 +28,9 @@ import com.netease.arctic.table.KeyedTable;
 import com.netease.arctic.table.MetadataColumns;
 import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.UnkeyedTable;
+import org.apache.amoro.hive.io.reader.AdaptHiveGenericKeyedDataReader;
+import org.apache.amoro.hive.io.reader.AdaptHiveGenericUnkeyedDataReader;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.iceberg.AppendFiles;
diff --git a/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/test/TestImpalaParquet.java b/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/test/TestImpalaParquet.java
index cf90d36bb..62ca8c0c9 100644
--- a/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/test/TestImpalaParquet.java
+++ b/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/test/TestImpalaParquet.java
@@ -18,9 +18,9 @@
 
 package com.netease.arctic.spark.test;
 
-import com.netease.arctic.hive.HMSMockServer;
 import com.netease.arctic.spark.reader.SparkParquetReaders;
 import com.netease.arctic.spark.test.utils.ResourceInputFile;
+import org.apache.amoro.hive.HMSMockServer;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.expressions.Expressions;
 import org.apache.iceberg.io.CloseableIterator;
diff --git a/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/test/suites/sql/TestInsertOverwriteSQL.java b/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/test/suites/sql/TestInsertOverwriteSQL.java
index 6933fbf3a..c3c4a6f7f 100644
--- a/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/test/suites/sql/TestInsertOverwriteSQL.java
+++ b/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/test/suites/sql/TestInsertOverwriteSQL.java
@@ -20,7 +20,6 @@ package com.netease.arctic.spark.test.suites.sql;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.data.ChangeAction;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.spark.mixed.SparkSQLProperties;
 import com.netease.arctic.spark.test.MixedTableTestBase;
 import com.netease.arctic.spark.test.extensions.EnableCatalogSelect;
@@ -33,6 +32,7 @@ import com.netease.arctic.spark.test.utils.TestTableUtil;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.Schema;
diff --git a/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/writer/TestMixedWriter.java b/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/writer/TestMixedWriter.java
index 518fe7ab7..f0ddfa5c1 100644
--- a/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/writer/TestMixedWriter.java
+++ b/mixed-format/spark/v3.2/spark/src/test/java/com/netease/arctic/spark/writer/TestMixedWriter.java
@@ -19,8 +19,6 @@
 package com.netease.arctic.spark.writer;
 
 import com.netease.arctic.TableFormat;
-import com.netease.arctic.hive.io.HiveDataTestHelpers;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.spark.io.TaskWriters;
 import com.netease.arctic.spark.reader.SparkParquetReaders;
@@ -30,6 +28,8 @@ import com.netease.arctic.spark.test.utils.TestTableUtil;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.io.HiveDataTestHelpers;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.FileFormat;
 import org.apache.iceberg.Files;
diff --git a/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/test/TestImpalaParquet.java b/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/test/TestImpalaParquet.java
index 976008df5..3640cb433 100644
--- a/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/test/TestImpalaParquet.java
+++ b/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/test/TestImpalaParquet.java
@@ -18,9 +18,9 @@
 
 package com.netease.arctic.spark.test;
 
-import com.netease.arctic.hive.HMSMockServer;
 import com.netease.arctic.spark.reader.SparkParquetReaders;
 import com.netease.arctic.spark.test.utils.ResourceInputFile;
+import org.apache.amoro.hive.HMSMockServer;
 import org.apache.iceberg.Schema;
 import org.apache.iceberg.expressions.Expressions;
 import org.apache.iceberg.io.CloseableIterator;
diff --git a/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/test/suites/sql/TestInsertOverwriteSQL.java b/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/test/suites/sql/TestInsertOverwriteSQL.java
index 6933fbf3a..c3c4a6f7f 100644
--- a/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/test/suites/sql/TestInsertOverwriteSQL.java
+++ b/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/test/suites/sql/TestInsertOverwriteSQL.java
@@ -20,7 +20,6 @@ package com.netease.arctic.spark.test.suites.sql;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.data.ChangeAction;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.spark.mixed.SparkSQLProperties;
 import com.netease.arctic.spark.test.MixedTableTestBase;
 import com.netease.arctic.spark.test.extensions.EnableCatalogSelect;
@@ -33,6 +32,7 @@ import com.netease.arctic.spark.test.utils.TestTableUtil;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.PartitionSpec;
 import org.apache.iceberg.Schema;
diff --git a/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/writer/TestMixedWriter.java b/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/writer/TestMixedWriter.java
index 518fe7ab7..f0ddfa5c1 100644
--- a/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/writer/TestMixedWriter.java
+++ b/mixed-format/spark/v3.3/spark/src/test/java/com/netease/arctic/spark/writer/TestMixedWriter.java
@@ -19,8 +19,6 @@
 package com.netease.arctic.spark.writer;
 
 import com.netease.arctic.TableFormat;
-import com.netease.arctic.hive.io.HiveDataTestHelpers;
-import com.netease.arctic.hive.table.SupportHive;
 import com.netease.arctic.properties.HiveTableProperties;
 import com.netease.arctic.spark.io.TaskWriters;
 import com.netease.arctic.spark.reader.SparkParquetReaders;
@@ -30,6 +28,8 @@ import com.netease.arctic.spark.test.utils.TestTableUtil;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.PrimaryKeySpec;
 import com.netease.arctic.table.TableProperties;
+import org.apache.amoro.hive.io.HiveDataTestHelpers;
+import org.apache.amoro.hive.table.SupportHive;
 import org.apache.iceberg.DataFile;
 import org.apache.iceberg.FileFormat;
 import org.apache.iceberg.Files;
diff --git a/mixed-format/trino/src/test/java/com/netease/arctic/trino/arctic/TestHiveTable.java b/mixed-format/trino/src/test/java/com/netease/arctic/trino/arctic/TestHiveTable.java
index f0c44dd9d..ba12248b3 100644
--- a/mixed-format/trino/src/test/java/com/netease/arctic/trino/arctic/TestHiveTable.java
+++ b/mixed-format/trino/src/test/java/com/netease/arctic/trino/arctic/TestHiveTable.java
@@ -26,9 +26,6 @@ import static org.assertj.core.api.Assertions.assertThat;
 
 import com.netease.arctic.MockArcticMetastoreServer;
 import com.netease.arctic.data.ChangeAction;
-import com.netease.arctic.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
-import com.netease.arctic.hive.table.HiveLocationKind;
-import com.netease.arctic.hive.table.KeyedHiveTable;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.BaseLocationKind;
 import com.netease.arctic.table.ChangeLocationKind;
@@ -37,6 +34,9 @@ import com.netease.arctic.table.TableIdentifier;
 import com.netease.arctic.table.TableProperties;
 import io.trino.sql.query.QueryAssertions;
 import io.trino.testing.QueryRunner;
+import org.apache.amoro.hive.io.writer.AdaptHiveGenericTaskWriterBuilder;
+import org.apache.amoro.hive.table.HiveLocationKind;
+import org.apache.amoro.hive.table.KeyedHiveTable;
 import org.apache.iceberg.AppendFiles;
 import org.apache.iceberg.FileFormat;
 import org.apache.iceberg.Files;
diff --git a/mixed-format/trino/src/test/java/com/netease/arctic/trino/arctic/TestHiveTableBaseForTrino.java b/mixed-format/trino/src/test/java/com/netease/arctic/trino/arctic/TestHiveTableBaseForTrino.java
index bc37694db..5dfe3ecda 100644
--- a/mixed-format/trino/src/test/java/com/netease/arctic/trino/arctic/TestHiveTableBaseForTrino.java
+++ b/mixed-format/trino/src/test/java/com/netease/arctic/trino/arctic/TestHiveTableBaseForTrino.java
@@ -22,15 +22,15 @@ import static com.netease.arctic.MockArcticMetastoreServer.TEST_CATALOG_NAME;
 
 import com.netease.arctic.TableFormat;
 import com.netease.arctic.catalog.CatalogLoader;
-import com.netease.arctic.hive.HMSMockServer;
-import com.netease.arctic.hive.catalog.ArcticHiveCatalog;
-import com.netease.arctic.hive.catalog.HiveCatalogTestHelper;
-import com.netease.arctic.hive.table.KeyedHiveTable;
-import com.netease.arctic.hive.table.UnkeyedHiveTable;
 import com.netease.arctic.table.ArcticTable;
 import com.netease.arctic.table.TableIdentifier;
 import com.netease.arctic.table.TableProperties;
 import io.trino.testng.services.ManageTestResources;
+import org.apache.amoro.hive.HMSMockServer;
+import org.apache.amoro.hive.catalog.ArcticHiveCatalog;
+import org.apache.amoro.hive.catalog.HiveCatalogTestHelper;
+import org.apache.amoro.hive.table.KeyedHiveTable;
+import org.apache.amoro.hive.table.UnkeyedHiveTable;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.hive.metastore.api.Database;
 import org.apache.hadoop.hive.metastore.api.Partition;