You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ji...@apache.org on 2024/12/01 14:03:02 UTC

(hadoop) 37/41: Integration of TOS: Shade tos dependencies.

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

jinglun pushed a commit to branch HADOOP-19236-original
in repository https://gitbox.apache.org/repos/asf/hadoop.git

commit 72b31bc7ce806a9a15a4c37da87e9b81537f8d9f
Author: Codebase CI <gi...@codebaseci.byted.org>
AuthorDate: Fri Nov 15 12:51:38 2024 +0000

    Integration of TOS: Shade tos dependencies.
---
 .../hadoop-tos/{ => hadoop-tos-core}/pom.xml       | 100 +++--
 .../java/org/apache/hadoop/fs/tosfs/RawFS.java     |   0
 .../org/apache/hadoop/fs/tosfs/RawFSUtils.java     |   0
 .../org/apache/hadoop/fs/tosfs/RawFileStatus.java  |   0
 .../org/apache/hadoop/fs/tosfs/RawFileSystem.java  |   0
 .../hadoop/fs/tosfs/RawLocatedFileStatus.java      |   0
 .../org/apache/hadoop/fs/tosfs/TosChecksum.java    |   0
 .../java/org/apache/hadoop/fs/tosfs/TosFS.java     |   0
 .../org/apache/hadoop/fs/tosfs/TosFileSystem.java  |   0
 .../hadoop/fs/tosfs/commit/CommitContext.java      |   0
 .../apache/hadoop/fs/tosfs/commit/CommitUtils.java |   0
 .../apache/hadoop/fs/tosfs/commit/Committer.java   |   0
 .../hadoop/fs/tosfs/commit/CommitterFactory.java   |   0
 .../hadoop/fs/tosfs/commit/MagicOutputStream.java  |   0
 .../org/apache/hadoop/fs/tosfs/commit/Pending.java |   0
 .../apache/hadoop/fs/tosfs/commit/PendingSet.java  |   0
 .../apache/hadoop/fs/tosfs/commit/SuccessData.java |   0
 .../hadoop/fs/tosfs/commit/mapred/Committer.java   |   0
 .../hadoop/fs/tosfs/commit/ops/PendingOps.java     |   0
 .../fs/tosfs/commit/ops/PendingOpsFactory.java     |   0
 .../hadoop/fs/tosfs/commit/ops/RawPendingOps.java  |   0
 .../org/apache/hadoop/fs/tosfs/common/Bytes.java   |   0
 .../org/apache/hadoop/fs/tosfs/common/Chain.java   |   0
 .../org/apache/hadoop/fs/tosfs/common/Tasks.java   |   0
 .../apache/hadoop/fs/tosfs/common/ThreadPools.java |   0
 .../apache/hadoop/fs/tosfs/conf/ArgumentKey.java   |   0
 .../org/apache/hadoop/fs/tosfs/conf/ConfKeys.java  |   0
 .../apache/hadoop/fs/tosfs/conf/FileStoreKeys.java |   0
 .../org/apache/hadoop/fs/tosfs/conf/TosKeys.java   |   0
 .../apache/hadoop/fs/tosfs/object/BucketInfo.java  |   0
 .../hadoop/fs/tosfs/object/ChecksumInfo.java       |   0
 .../hadoop/fs/tosfs/object/ChecksumType.java       |   0
 .../apache/hadoop/fs/tosfs/object/Constants.java   |   0
 .../hadoop/fs/tosfs/object/DirectoryStorage.java   |   0
 .../apache/hadoop/fs/tosfs/object/FileStore.java   |   0
 .../fs/tosfs/object/InputStreamProvider.java       |   0
 .../hadoop/fs/tosfs/object/MultipartUpload.java    |   0
 .../hadoop/fs/tosfs/object/ObjectConstants.java    |   0
 .../hadoop/fs/tosfs/object/ObjectContent.java      |   0
 .../apache/hadoop/fs/tosfs/object/ObjectInfo.java  |   0
 .../tosfs/object/ObjectMultiRangeInputStream.java  |   0
 .../hadoop/fs/tosfs/object/ObjectOutputStream.java |   0
 .../fs/tosfs/object/ObjectRangeInputStream.java    |   0
 .../hadoop/fs/tosfs/object/ObjectStorage.java      |   0
 .../fs/tosfs/object/ObjectStorageFactory.java      |   0
 .../apache/hadoop/fs/tosfs/object/ObjectUtils.java |   0
 .../org/apache/hadoop/fs/tosfs/object/Part.java    |   0
 .../hadoop/fs/tosfs/object/PrefixStorage.java      |   0
 .../exceptions/ChecksumMismatchException.java      |   0
 .../exceptions/InvalidObjectKeyException.java      |   0
 .../object/exceptions/NotAppendableException.java  |   0
 .../tosfs/object/request/ListObjectsRequest.java   |   0
 .../tosfs/object/response/ListObjectsResponse.java |   0
 .../fs/tosfs/object/staging/FileStagingPart.java   |   0
 .../fs/tosfs/object/staging/StagingPart.java       |   0
 .../hadoop/fs/tosfs/object/staging/State.java      |   0
 .../fs/tosfs/object/tos/ChainTOSInputStream.java   |   0
 .../fs/tosfs/object/tos/DelegationClient.java      | 452 ++++++++++-----------
 .../tosfs/object/tos/DelegationClientBuilder.java  |   6 +-
 .../fs/tosfs/object/tos/GetObjectOutput.java       |   2 +-
 .../org/apache/hadoop/fs/tosfs/object/tos/TOS.java |  90 ++--
 .../hadoop/fs/tosfs/object/tos/TOSErrorCodes.java  |   0
 .../hadoop/fs/tosfs/object/tos/TOSInputStream.java |   0
 .../hadoop/fs/tosfs/object/tos/TOSUtils.java       |   4 +-
 .../hadoop/fs/tosfs/object/tos/TosObjectInfo.java  |   0
 .../tos/auth/AbstractCredentialsProvider.java      |   0
 .../tosfs/object/tos/auth/CredentialsProvider.java |   2 +-
 .../tos/auth/DefaultCredentialsProviderChain.java  |   2 +-
 .../tos/auth/EnvironmentCredentialsProvider.java   |   0
 .../object/tos/auth/ExpireableCredential.java      |   2 +-
 .../object/tos/auth/SimpleCredentialsProvider.java |   0
 .../apache/hadoop/fs/tosfs/ops/DefaultFsOps.java   |   0
 .../apache/hadoop/fs/tosfs/ops/DirectoryFsOps.java |   0
 .../java/org/apache/hadoop/fs/tosfs/ops/FsOps.java |   0
 .../org/apache/hadoop/fs/tosfs/ops/RenameOp.java   |   0
 .../apache/hadoop/fs/tosfs/util/CommonUtils.java   |   0
 .../org/apache/hadoop/fs/tosfs/util/FSUtils.java   |   0
 .../org/apache/hadoop/fs/tosfs/util/FuseUtils.java |   0
 .../org/apache/hadoop/fs/tosfs/util/Iterables.java |   0
 .../org/apache/hadoop/fs/tosfs/util/JsonCodec.java |   0
 .../apache/hadoop/fs/tosfs/util/LazyReload.java    |   0
 .../hadoop/fs/tosfs/util/LazyReloadIter.java       |   0
 .../apache/hadoop/fs/tosfs/util/ParseUtils.java    |   0
 .../org/apache/hadoop/fs/tosfs/util/Range.java     |   0
 .../org/apache/hadoop/fs/tosfs/util/Reload.java    |   0
 .../hadoop/fs/tosfs/util/RemoteIterators.java      |   0
 .../hadoop/fs/tosfs/util/RetryableUtils.java       |   2 +-
 .../apache/hadoop/fs/tosfs/util/Serializer.java    |   0
 .../fs/tosfs/util/TOSClientContextUtils.java       |   0
 .../org/apache/hadoop/fs/tosfs/util/UUIDUtils.java |   0
 .../src/site/markdown/cloud-storage/index.md       |   0
 .../java/org/apache/hadoop/fs/tosfs/TestEnv.java   |   0
 .../org/apache/hadoop/fs/tosfs/TestRawFSUtils.java |   0
 .../apache/hadoop/fs/tosfs/TestRawFileSystem.java  |   0
 .../apache/hadoop/fs/tosfs/TestTosChecksum.java    |   0
 .../apache/hadoop/fs/tosfs/TestTosFileSystem.java  |   0
 .../hadoop/fs/tosfs/commit/BaseJobSuite.java       |   0
 .../hadoop/fs/tosfs/commit/CommitterTestBase.java  |   0
 .../apache/hadoop/fs/tosfs/commit/JobSuite.java    |   0
 .../hadoop/fs/tosfs/commit/MRJobTestBase.java      |   0
 .../hadoop/fs/tosfs/commit/TestCommitter.java      |   0
 .../apache/hadoop/fs/tosfs/commit/TestMRJob.java   |   0
 .../fs/tosfs/commit/TestMagicOutputStream.java     |   0
 .../fs/tosfs/commit/mapred/CommitterTestBase.java  |   0
 .../hadoop/fs/tosfs/commit/mapred/JobSuite.java    |   0
 .../fs/tosfs/commit/mapred/TestCommitter.java      |   0
 .../hadoop/fs/tosfs/contract/TestChecksum.java     |   0
 .../hadoop/fs/tosfs/contract/TestCreate.java       |   0
 .../hadoop/fs/tosfs/contract/TestDelete.java       |   0
 .../hadoop/fs/tosfs/contract/TestDistCp.java       |   0
 .../fs/tosfs/contract/TestGetFileStatus.java       |   0
 .../apache/hadoop/fs/tosfs/contract/TestMkdir.java |   0
 .../apache/hadoop/fs/tosfs/contract/TestOpen.java  |   0
 .../hadoop/fs/tosfs/contract/TestRename.java       |   0
 .../hadoop/fs/tosfs/contract/TestRootDir.java      |   0
 .../apache/hadoop/fs/tosfs/contract/TestSeek.java  |   0
 .../hadoop/fs/tosfs/contract/TestUnbuffer.java     |   0
 .../apache/hadoop/fs/tosfs/contract/TestXAttr.java |   0
 .../hadoop/fs/tosfs/contract/TosContract.java      |   0
 .../fs/tosfs/object/ObjectStorageTestBase.java     |   0
 .../hadoop/fs/tosfs/object/ObjectTestUtils.java    |   0
 .../fs/tosfs/object/TestDirectoryStorage.java      |   0
 .../object/TestObjectMultiRangeInputStream.java    |   0
 .../fs/tosfs/object/TestObjectOutputStream.java    |   0
 .../tosfs/object/TestObjectRangeInputStream.java   |   0
 .../hadoop/fs/tosfs/object/TestObjectStorage.java  |   2 +-
 .../tosfs/object/tos/TestChainTOSInputStream.java  |   4 +-
 .../object/tos/TestDelegationClientBuilder.java    |  28 +-
 .../fs/tosfs/object/tos/TestTOSInputStream.java    |   6 +-
 .../fs/tosfs/object/tos/TestTOSObjectStorage.java  |   2 +-
 .../fs/tosfs/object/tos/TestTOSRetryPolicy.java    |  14 +-
 .../tos/auth/TestAbstractCredentialsProvider.java  |   0
 .../auth/TestDefaultCredentialsProviderChain.java  |   2 +-
 .../auth/TestEnvironmentCredentialsProvider.java   |   0
 .../tos/auth/TestSimpleCredentialsProvider.java    |   2 +-
 .../apache/hadoop/fs/tosfs/ops/TestBaseFsOps.java  |   0
 .../apache/hadoop/fs/tosfs/ops/TestBaseOps.java    |   0
 .../hadoop/fs/tosfs/ops/TestDefaultFsOps.java      |   0
 .../hadoop/fs/tosfs/ops/TestDirectoryFsOps.java    |   0
 .../apache/hadoop/fs/tosfs/ops/TestRenameOp.java   |   0
 .../org/apache/hadoop/fs/tosfs/util/TempFiles.java |   0
 .../apache/hadoop/fs/tosfs/util/TestFSUtils.java   |   0
 .../apache/hadoop/fs/tosfs/util/TestIterables.java |   0
 .../hadoop/fs/tosfs/util/TestLazyReload.java       |   0
 .../org/apache/hadoop/fs/tosfs/util/TestRange.java |   0
 .../apache/hadoop/fs/tosfs/util/TestUtility.java   |   0
 .../src/test/resources/contract/tos.xml            |   0
 .../src/test/resources/core-site.xml               |   0
 .../src/test/resources/log4j.properties            |   0
 .../hadoop-tos/hadoop-tos-shade/pom.xml            | 129 ++++++
 hadoop-cloud-storage-project/hadoop-tos/pom.xml    |  96 +----
 hadoop-project/pom.xml                             |  12 +
 pom.xml                                            |   7 +
 153 files changed, 539 insertions(+), 427 deletions(-)

diff --git a/hadoop-cloud-storage-project/hadoop-tos/pom.xml b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/pom.xml
similarity index 63%
copy from hadoop-cloud-storage-project/hadoop-tos/pom.xml
copy to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/pom.xml
index 86994472595..b8739880c44 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/pom.xml
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/pom.xml
@@ -20,12 +20,12 @@
     <groupId>org.apache.hadoop</groupId>
     <artifactId>hadoop-project</artifactId>
     <version>3.5.0-SNAPSHOT</version>
-    <relativePath>../../hadoop-project</relativePath>
+    <relativePath>../../../hadoop-project/pom.xml</relativePath>
   </parent>
 
-  <artifactId>hadoop-tos</artifactId>
+  <artifactId>hadoop-tos-core</artifactId>
   <version>3.5.0-SNAPSHOT</version>
-  <name>Apache Hadoop Volcano Engine Services support</name>
+  <name>Apache Hadoop Volcano Engine Services Core</name>
   <description>
     This module contains code to support integration with Volcano Engine TOS.
     It also declares the dependencies needed to work with Volcano Engine services.
@@ -35,8 +35,22 @@
   <properties>
     <file.encoding>UTF-8</file.encoding>
     <ve-tos-java-sdk.version>2.8.6</ve-tos-java-sdk.version>
+    <tos.shading.prefix>org.apache.hadoop.fs.tosfs.shaded</tos.shading.prefix>
   </properties>
 
+  <dependencyManagement>
+    <dependencies>
+      <!-- The ve-tos-java-sdk 2.8.6 depends on okhttp, but okhttp violates dependency convergence.
+        The com.squareup.okhttp3:okhttp:jar:4.10.0 depends on org.jetbrains.kotlin:kotlin-stdlib-common,
+        with 2 different versions: 1.5.31 and 1.6.20. Force configure it to 1.6.20. -->
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-stdlib-common</artifactId>
+        <version>1.6.20</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.hadoop</groupId>
@@ -48,7 +62,29 @@
       <artifactId>hadoop-mapreduce-client-core</artifactId>
       <scope>provided</scope>
     </dependency>
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-tos-shade</artifactId>
+      <exclusions>
+        <exclusion>
+          <!-- Provided by hadoop-common -->
+          <groupId>com.fasterxml.jackson.core</groupId>
+          <artifactId>jackson-annotations</artifactId>
+        </exclusion>
+        <exclusion>
+          <!-- Provided by hadoop-common -->
+          <groupId>com.fasterxml.jackson.core</groupId>
+          <artifactId>jackson-databind</artifactId>
+        </exclusion>
+        <!-- Provided by hadoop-common -->
+        <exclusion>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-api</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
 
+    <!-- Test dependencies -->
     <dependency>
       <groupId>org.apache.hadoop</groupId>
       <artifactId>hadoop-common</artifactId>
@@ -66,17 +102,18 @@
       <artifactId>hadoop-minicluster</artifactId>
       <scope>test</scope>
     </dependency>
-
     <dependency>
-      <groupId>com.volcengine</groupId>
-      <artifactId>ve-tos-java-sdk</artifactId>
-      <version>${ve-tos-java-sdk.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jetbrains.kotlin</groupId>
-          <artifactId>kotlin-stdlib-common</artifactId>
-        </exclusion>
-      </exclusions>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-distcp</artifactId>
+      <version>${hadoop.version}</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-distcp</artifactId>
+      <version>${hadoop.version}</version>
+      <scope>test</scope>
+      <type>test-jar</type>
     </dependency>
 
     <dependency>
@@ -94,19 +131,6 @@
       <artifactId>mockito-core</artifactId>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-distcp</artifactId>
-      <version>${hadoop.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-distcp</artifactId>
-      <version>${hadoop.version}</version>
-      <scope>test</scope>
-      <type>test-jar</type>
-    </dependency>
   </dependencies>
 
   <build>
@@ -124,6 +148,30 @@
           <argLine>-Xmx2048m</argLine>
         </configuration>
       </plugin>
+
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>${maven-shade-plugin.version}</version>
+        <executions>
+          <execution>
+            <id>package-dependency</id>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <shadeSourcesContent>true</shadeSourcesContent>
+              <createSourcesJar>true</createSourcesJar>
+              <artifactSet>
+                <includes>
+                  <include>org.apache.hadoop:hadoop-tos-shade</include>
+                </includes>
+              </artifactSet>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawFS.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawFS.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawFS.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawFS.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawFSUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawFSUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawFSUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawFSUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawFileStatus.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawFileStatus.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawFileStatus.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawFileStatus.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawFileSystem.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawFileSystem.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawFileSystem.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawFileSystem.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawLocatedFileStatus.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawLocatedFileStatus.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/RawLocatedFileStatus.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/RawLocatedFileStatus.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/TosChecksum.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/TosChecksum.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/TosChecksum.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/TosChecksum.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/TosFS.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/TosFS.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/TosFS.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/TosFS.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/TosFileSystem.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/TosFileSystem.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/TosFileSystem.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/TosFileSystem.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitContext.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitContext.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitContext.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitContext.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/Committer.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/Committer.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/Committer.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/Committer.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitterFactory.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitterFactory.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitterFactory.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/CommitterFactory.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/MagicOutputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/MagicOutputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/MagicOutputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/MagicOutputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/Pending.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/Pending.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/Pending.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/Pending.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/PendingSet.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/PendingSet.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/PendingSet.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/PendingSet.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/SuccessData.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/SuccessData.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/SuccessData.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/SuccessData.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/mapred/Committer.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/mapred/Committer.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/mapred/Committer.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/mapred/Committer.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/PendingOps.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/PendingOps.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/PendingOps.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/PendingOps.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/PendingOpsFactory.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/PendingOpsFactory.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/PendingOpsFactory.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/PendingOpsFactory.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/RawPendingOps.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/RawPendingOps.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/RawPendingOps.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/commit/ops/RawPendingOps.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/common/Bytes.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/common/Bytes.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/common/Bytes.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/common/Bytes.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/common/Chain.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/common/Chain.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/common/Chain.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/common/Chain.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/common/Tasks.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/common/Tasks.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/common/Tasks.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/common/Tasks.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/common/ThreadPools.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/common/ThreadPools.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/common/ThreadPools.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/common/ThreadPools.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/conf/ArgumentKey.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/conf/ArgumentKey.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/conf/ArgumentKey.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/conf/ArgumentKey.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/conf/ConfKeys.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/conf/ConfKeys.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/conf/ConfKeys.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/conf/ConfKeys.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/conf/FileStoreKeys.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/conf/FileStoreKeys.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/conf/FileStoreKeys.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/conf/FileStoreKeys.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/conf/TosKeys.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/conf/TosKeys.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/conf/TosKeys.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/conf/TosKeys.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/BucketInfo.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/BucketInfo.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/BucketInfo.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/BucketInfo.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ChecksumInfo.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ChecksumInfo.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ChecksumInfo.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ChecksumInfo.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ChecksumType.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ChecksumType.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ChecksumType.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ChecksumType.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/Constants.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/Constants.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/Constants.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/Constants.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/DirectoryStorage.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/DirectoryStorage.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/DirectoryStorage.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/DirectoryStorage.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/FileStore.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/FileStore.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/FileStore.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/FileStore.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/InputStreamProvider.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/InputStreamProvider.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/InputStreamProvider.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/InputStreamProvider.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/MultipartUpload.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/MultipartUpload.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/MultipartUpload.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/MultipartUpload.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectConstants.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectConstants.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectConstants.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectConstants.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectContent.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectContent.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectContent.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectContent.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectInfo.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectInfo.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectInfo.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectInfo.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectMultiRangeInputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectMultiRangeInputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectMultiRangeInputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectMultiRangeInputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectOutputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectOutputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectOutputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectOutputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectRangeInputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectRangeInputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectRangeInputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectRangeInputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectStorage.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectStorage.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectStorage.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectStorage.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectStorageFactory.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectStorageFactory.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectStorageFactory.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectStorageFactory.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/ObjectUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/Part.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/Part.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/Part.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/Part.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/PrefixStorage.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/PrefixStorage.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/PrefixStorage.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/PrefixStorage.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/ChecksumMismatchException.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/ChecksumMismatchException.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/ChecksumMismatchException.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/ChecksumMismatchException.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/InvalidObjectKeyException.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/InvalidObjectKeyException.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/InvalidObjectKeyException.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/InvalidObjectKeyException.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/NotAppendableException.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/NotAppendableException.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/NotAppendableException.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/exceptions/NotAppendableException.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/request/ListObjectsRequest.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/request/ListObjectsRequest.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/request/ListObjectsRequest.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/request/ListObjectsRequest.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/response/ListObjectsResponse.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/response/ListObjectsResponse.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/response/ListObjectsResponse.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/response/ListObjectsResponse.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/FileStagingPart.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/FileStagingPart.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/FileStagingPart.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/FileStagingPart.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/StagingPart.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/StagingPart.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/StagingPart.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/StagingPart.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/State.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/State.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/State.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/staging/State.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/ChainTOSInputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/ChainTOSInputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/ChainTOSInputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/ChainTOSInputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClient.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClient.java
similarity index 60%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClient.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClient.java
index 884e98535da..be8274939ac 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClient.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClient.java
@@ -18,232 +18,232 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.TOSClientConfiguration;
-import com.volcengine.tos.TOSV2ClientBuilder;
-import com.volcengine.tos.TosClientException;
-import com.volcengine.tos.TosException;
-import com.volcengine.tos.TosServerException;
-import com.volcengine.tos.auth.Credential;
-import com.volcengine.tos.auth.Credentials;
-import com.volcengine.tos.TOSV2;
-import com.volcengine.tos.comm.HttpStatus;
-import com.volcengine.tos.comm.common.ACLType;
-import com.volcengine.tos.internal.RequestOptionsBuilder;
-import com.volcengine.tos.model.acl.GetObjectAclOutput;
-import com.volcengine.tos.model.acl.PutObjectAclInput;
-import com.volcengine.tos.model.acl.PutObjectAclOutput;
-import com.volcengine.tos.model.bucket.CreateBucketInput;
-import com.volcengine.tos.model.bucket.CreateBucketOutput;
-import com.volcengine.tos.model.bucket.CreateBucketV2Input;
-import com.volcengine.tos.model.bucket.CreateBucketV2Output;
-import com.volcengine.tos.model.bucket.DeleteBucketCORSInput;
-import com.volcengine.tos.model.bucket.DeleteBucketCORSOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketCustomDomainInput;
-import com.volcengine.tos.model.bucket.DeleteBucketCustomDomainOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketEncryptionInput;
-import com.volcengine.tos.model.bucket.DeleteBucketEncryptionOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketInput;
-import com.volcengine.tos.model.bucket.DeleteBucketInventoryInput;
-import com.volcengine.tos.model.bucket.DeleteBucketInventoryOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketLifecycleInput;
-import com.volcengine.tos.model.bucket.DeleteBucketLifecycleOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketMirrorBackInput;
-import com.volcengine.tos.model.bucket.DeleteBucketMirrorBackOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketPolicyInput;
-import com.volcengine.tos.model.bucket.DeleteBucketPolicyOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketRealTimeLogInput;
-import com.volcengine.tos.model.bucket.DeleteBucketRealTimeLogOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketRenameInput;
-import com.volcengine.tos.model.bucket.DeleteBucketRenameOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketReplicationInput;
-import com.volcengine.tos.model.bucket.DeleteBucketReplicationOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketTaggingInput;
-import com.volcengine.tos.model.bucket.DeleteBucketTaggingOutput;
-import com.volcengine.tos.model.bucket.DeleteBucketWebsiteInput;
-import com.volcengine.tos.model.bucket.DeleteBucketWebsiteOutput;
-import com.volcengine.tos.model.bucket.GetBucketACLInput;
-import com.volcengine.tos.model.bucket.GetBucketACLOutput;
-import com.volcengine.tos.model.bucket.GetBucketCORSInput;
-import com.volcengine.tos.model.bucket.GetBucketCORSOutput;
-import com.volcengine.tos.model.bucket.GetBucketEncryptionInput;
-import com.volcengine.tos.model.bucket.GetBucketEncryptionOutput;
-import com.volcengine.tos.model.bucket.GetBucketInventoryInput;
-import com.volcengine.tos.model.bucket.GetBucketInventoryOutput;
-import com.volcengine.tos.model.bucket.GetBucketLifecycleInput;
-import com.volcengine.tos.model.bucket.GetBucketLifecycleOutput;
-import com.volcengine.tos.model.bucket.GetBucketLocationInput;
-import com.volcengine.tos.model.bucket.GetBucketLocationOutput;
-import com.volcengine.tos.model.bucket.GetBucketMirrorBackInput;
-import com.volcengine.tos.model.bucket.GetBucketMirrorBackOutput;
-import com.volcengine.tos.model.bucket.GetBucketNotificationInput;
-import com.volcengine.tos.model.bucket.GetBucketNotificationOutput;
-import com.volcengine.tos.model.bucket.GetBucketNotificationType2Input;
-import com.volcengine.tos.model.bucket.GetBucketNotificationType2Output;
-import com.volcengine.tos.model.bucket.GetBucketPolicyInput;
-import com.volcengine.tos.model.bucket.GetBucketPolicyOutput;
-import com.volcengine.tos.model.bucket.GetBucketRealTimeLogInput;
-import com.volcengine.tos.model.bucket.GetBucketRealTimeLogOutput;
-import com.volcengine.tos.model.bucket.GetBucketRenameInput;
-import com.volcengine.tos.model.bucket.GetBucketRenameOutput;
-import com.volcengine.tos.model.bucket.GetBucketReplicationInput;
-import com.volcengine.tos.model.bucket.GetBucketReplicationOutput;
-import com.volcengine.tos.model.bucket.GetBucketTaggingInput;
-import com.volcengine.tos.model.bucket.GetBucketTaggingOutput;
-import com.volcengine.tos.model.bucket.GetBucketVersioningInput;
-import com.volcengine.tos.model.bucket.GetBucketVersioningOutput;
-import com.volcengine.tos.model.bucket.GetBucketWebsiteInput;
-import com.volcengine.tos.model.bucket.GetBucketWebsiteOutput;
-import com.volcengine.tos.model.bucket.HeadBucketOutput;
-import com.volcengine.tos.model.bucket.HeadBucketV2Input;
-import com.volcengine.tos.model.bucket.HeadBucketV2Output;
-import com.volcengine.tos.model.bucket.ListBucketCustomDomainInput;
-import com.volcengine.tos.model.bucket.ListBucketCustomDomainOutput;
-import com.volcengine.tos.model.bucket.ListBucketInventoryInput;
-import com.volcengine.tos.model.bucket.ListBucketInventoryOutput;
-import com.volcengine.tos.model.bucket.ListBucketsInput;
-import com.volcengine.tos.model.bucket.ListBucketsOutput;
-import com.volcengine.tos.model.bucket.ListBucketsV2Input;
-import com.volcengine.tos.model.bucket.ListBucketsV2Output;
-import com.volcengine.tos.model.bucket.PutBucketACLInput;
-import com.volcengine.tos.model.bucket.PutBucketACLOutput;
-import com.volcengine.tos.model.bucket.PutBucketCORSInput;
-import com.volcengine.tos.model.bucket.PutBucketCORSOutput;
-import com.volcengine.tos.model.bucket.PutBucketCustomDomainInput;
-import com.volcengine.tos.model.bucket.PutBucketCustomDomainOutput;
-import com.volcengine.tos.model.bucket.PutBucketEncryptionInput;
-import com.volcengine.tos.model.bucket.PutBucketEncryptionOutput;
-import com.volcengine.tos.model.bucket.PutBucketInventoryInput;
-import com.volcengine.tos.model.bucket.PutBucketInventoryOutput;
-import com.volcengine.tos.model.bucket.PutBucketLifecycleInput;
-import com.volcengine.tos.model.bucket.PutBucketLifecycleOutput;
-import com.volcengine.tos.model.bucket.PutBucketMirrorBackInput;
-import com.volcengine.tos.model.bucket.PutBucketMirrorBackOutput;
-import com.volcengine.tos.model.bucket.PutBucketNotificationInput;
-import com.volcengine.tos.model.bucket.PutBucketNotificationOutput;
-import com.volcengine.tos.model.bucket.PutBucketNotificationType2Input;
-import com.volcengine.tos.model.bucket.PutBucketNotificationType2Output;
-import com.volcengine.tos.model.bucket.PutBucketPolicyInput;
-import com.volcengine.tos.model.bucket.PutBucketPolicyOutput;
-import com.volcengine.tos.model.bucket.PutBucketRealTimeLogInput;
-import com.volcengine.tos.model.bucket.PutBucketRealTimeLogOutput;
-import com.volcengine.tos.model.bucket.PutBucketRenameInput;
-import com.volcengine.tos.model.bucket.PutBucketRenameOutput;
-import com.volcengine.tos.model.bucket.PutBucketReplicationInput;
-import com.volcengine.tos.model.bucket.PutBucketReplicationOutput;
-import com.volcengine.tos.model.bucket.PutBucketStorageClassInput;
-import com.volcengine.tos.model.bucket.PutBucketStorageClassOutput;
-import com.volcengine.tos.model.bucket.PutBucketTaggingInput;
-import com.volcengine.tos.model.bucket.PutBucketTaggingOutput;
-import com.volcengine.tos.model.bucket.PutBucketVersioningInput;
-import com.volcengine.tos.model.bucket.PutBucketVersioningOutput;
-import com.volcengine.tos.model.bucket.PutBucketWebsiteInput;
-import com.volcengine.tos.model.bucket.PutBucketWebsiteOutput;
-import com.volcengine.tos.model.object.AbortMultipartUploadInput;
-import com.volcengine.tos.model.object.AbortMultipartUploadOutput;
-import com.volcengine.tos.model.object.AppendObjectInput;
-import com.volcengine.tos.model.object.AppendObjectOutput;
-import com.volcengine.tos.model.object.CompleteMultipartUploadInput;
-import com.volcengine.tos.model.object.CompleteMultipartUploadOutput;
-import com.volcengine.tos.model.object.CompleteMultipartUploadV2Input;
-import com.volcengine.tos.model.object.CompleteMultipartUploadV2Output;
-import com.volcengine.tos.model.object.CopyObjectOutput;
-import com.volcengine.tos.model.object.CopyObjectV2Input;
-import com.volcengine.tos.model.object.CopyObjectV2Output;
-import com.volcengine.tos.model.object.CreateMultipartUploadInput;
-import com.volcengine.tos.model.object.CreateMultipartUploadOutput;
-import com.volcengine.tos.model.object.DeleteMultiObjectsInput;
-import com.volcengine.tos.model.object.DeleteMultiObjectsOutput;
-import com.volcengine.tos.model.object.DeleteMultiObjectsV2Input;
-import com.volcengine.tos.model.object.DeleteMultiObjectsV2Output;
-import com.volcengine.tos.model.object.DeleteObjectInput;
-import com.volcengine.tos.model.object.DeleteObjectOutput;
-import com.volcengine.tos.model.object.DeleteObjectTaggingInput;
-import com.volcengine.tos.model.object.DeleteObjectTaggingOutput;
-import com.volcengine.tos.model.object.DownloadFileInput;
-import com.volcengine.tos.model.object.DownloadFileOutput;
-import com.volcengine.tos.model.object.FetchObjectInput;
-import com.volcengine.tos.model.object.FetchObjectOutput;
-import com.volcengine.tos.model.object.GetFetchTaskInput;
-import com.volcengine.tos.model.object.GetFetchTaskOutput;
-import com.volcengine.tos.model.object.GetFileStatusInput;
-import com.volcengine.tos.model.object.GetFileStatusOutput;
-import com.volcengine.tos.model.object.GetObjectACLV2Input;
-import com.volcengine.tos.model.object.GetObjectACLV2Output;
-import com.volcengine.tos.model.object.GetObjectOutput;
-import com.volcengine.tos.model.object.GetObjectTaggingInput;
-import com.volcengine.tos.model.object.GetObjectTaggingOutput;
-import com.volcengine.tos.model.object.GetObjectToFileInput;
-import com.volcengine.tos.model.object.GetObjectToFileOutput;
-import com.volcengine.tos.model.object.GetObjectV2Input;
-import com.volcengine.tos.model.object.GetObjectV2Output;
-import com.volcengine.tos.model.object.GetSymlinkInput;
-import com.volcengine.tos.model.object.GetSymlinkOutput;
-import com.volcengine.tos.model.object.HeadObjectOutput;
-import com.volcengine.tos.model.object.HeadObjectV2Input;
-import com.volcengine.tos.model.object.HeadObjectV2Output;
-import com.volcengine.tos.model.object.ListMultipartUploadsInput;
-import com.volcengine.tos.model.object.ListMultipartUploadsOutput;
-import com.volcengine.tos.model.object.ListMultipartUploadsV2Input;
-import com.volcengine.tos.model.object.ListMultipartUploadsV2Output;
-import com.volcengine.tos.model.object.ListObjectVersionsInput;
-import com.volcengine.tos.model.object.ListObjectVersionsOutput;
-import com.volcengine.tos.model.object.ListObjectVersionsV2Input;
-import com.volcengine.tos.model.object.ListObjectVersionsV2Output;
-import com.volcengine.tos.model.object.ListObjectsInput;
-import com.volcengine.tos.model.object.ListObjectsOutput;
-import com.volcengine.tos.model.object.ListObjectsType2Input;
-import com.volcengine.tos.model.object.ListObjectsType2Output;
-import com.volcengine.tos.model.object.ListObjectsV2Input;
-import com.volcengine.tos.model.object.ListObjectsV2Output;
-import com.volcengine.tos.model.object.ListPartsInput;
-import com.volcengine.tos.model.object.ListPartsOutput;
-import com.volcengine.tos.model.object.ListUploadedPartsInput;
-import com.volcengine.tos.model.object.ListUploadedPartsOutput;
-import com.volcengine.tos.model.object.ObjectMetaRequestOptions;
-import com.volcengine.tos.model.object.PreSignedPolicyURLInput;
-import com.volcengine.tos.model.object.PreSignedPolicyURLOutput;
-import com.volcengine.tos.model.object.PreSignedPostSignatureInput;
-import com.volcengine.tos.model.object.PreSignedPostSignatureOutput;
-import com.volcengine.tos.model.object.PreSignedURLInput;
-import com.volcengine.tos.model.object.PreSignedURLOutput;
-import com.volcengine.tos.model.object.PreSingedPolicyURLInput;
-import com.volcengine.tos.model.object.PreSingedPolicyURLOutput;
-import com.volcengine.tos.model.object.PutFetchTaskInput;
-import com.volcengine.tos.model.object.PutFetchTaskOutput;
-import com.volcengine.tos.model.object.PutObjectACLInput;
-import com.volcengine.tos.model.object.PutObjectACLOutput;
-import com.volcengine.tos.model.object.PutObjectFromFileInput;
-import com.volcengine.tos.model.object.PutObjectFromFileOutput;
-import com.volcengine.tos.model.object.PutObjectInput;
-import com.volcengine.tos.model.object.PutObjectOutput;
-import com.volcengine.tos.model.object.PutObjectTaggingInput;
-import com.volcengine.tos.model.object.PutObjectTaggingOutput;
-import com.volcengine.tos.model.object.PutSymlinkInput;
-import com.volcengine.tos.model.object.PutSymlinkOutput;
-import com.volcengine.tos.model.object.RenameObjectInput;
-import com.volcengine.tos.model.object.RenameObjectOutput;
-import com.volcengine.tos.model.object.RestoreObjectInput;
-import com.volcengine.tos.model.object.RestoreObjectOutput;
-import com.volcengine.tos.model.object.ResumableCopyObjectInput;
-import com.volcengine.tos.model.object.ResumableCopyObjectOutput;
-import com.volcengine.tos.model.object.SetObjectMetaInput;
-import com.volcengine.tos.model.object.SetObjectMetaOutput;
-import com.volcengine.tos.model.object.UploadFileInput;
-import com.volcengine.tos.model.object.UploadFileOutput;
-import com.volcengine.tos.model.object.UploadFileV2Input;
-import com.volcengine.tos.model.object.UploadFileV2Output;
-import com.volcengine.tos.model.object.UploadPartCopyInput;
-import com.volcengine.tos.model.object.UploadPartCopyOutput;
-import com.volcengine.tos.model.object.UploadPartCopyV2Input;
-import com.volcengine.tos.model.object.UploadPartCopyV2Output;
-import com.volcengine.tos.model.object.UploadPartFromFileInput;
-import com.volcengine.tos.model.object.UploadPartFromFileOutput;
-import com.volcengine.tos.model.object.UploadPartInput;
-import com.volcengine.tos.model.object.UploadPartOutput;
-import com.volcengine.tos.model.object.UploadPartV2Input;
-import com.volcengine.tos.model.object.UploadPartV2Output;
-import com.volcengine.tos.transport.TransportConfig;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TOSClientConfiguration;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TOSV2ClientBuilder;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosClientException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosServerException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.auth.Credential;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.auth.Credentials;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TOSV2;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.comm.HttpStatus;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.comm.common.ACLType;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.internal.RequestOptionsBuilder;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.acl.GetObjectAclOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.acl.PutObjectAclInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.acl.PutObjectAclOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.CreateBucketInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.CreateBucketOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.CreateBucketV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.CreateBucketV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketCORSInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketCORSOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketCustomDomainInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketCustomDomainOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketEncryptionInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketEncryptionOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketInventoryInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketInventoryOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketLifecycleInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketLifecycleOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketMirrorBackInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketMirrorBackOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketPolicyInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketPolicyOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketRealTimeLogInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketRealTimeLogOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketRenameInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketRenameOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketReplicationInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketReplicationOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketTaggingInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketTaggingOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketWebsiteInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.DeleteBucketWebsiteOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketACLInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketACLOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketCORSInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketCORSOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketEncryptionInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketEncryptionOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketInventoryInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketInventoryOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketLifecycleInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketLifecycleOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketLocationInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketLocationOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketMirrorBackInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketMirrorBackOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketNotificationInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketNotificationOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketNotificationType2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketNotificationType2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketPolicyInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketPolicyOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketRealTimeLogInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketRealTimeLogOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketRenameInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketRenameOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketReplicationInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketReplicationOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketTaggingInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketTaggingOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketVersioningInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketVersioningOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketWebsiteInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.GetBucketWebsiteOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.HeadBucketOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.HeadBucketV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.HeadBucketV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.ListBucketCustomDomainInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.ListBucketCustomDomainOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.ListBucketInventoryInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.ListBucketInventoryOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.ListBucketsInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.ListBucketsOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.ListBucketsV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.ListBucketsV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketACLInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketACLOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketCORSInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketCORSOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketCustomDomainInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketCustomDomainOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketEncryptionInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketEncryptionOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketInventoryInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketInventoryOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketLifecycleInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketLifecycleOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketMirrorBackInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketMirrorBackOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketNotificationInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketNotificationOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketNotificationType2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketNotificationType2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketPolicyInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketPolicyOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketRealTimeLogInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketRealTimeLogOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketRenameInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketRenameOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketReplicationInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketReplicationOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketStorageClassInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketStorageClassOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketTaggingInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketTaggingOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketVersioningInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketVersioningOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketWebsiteInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.PutBucketWebsiteOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.AbortMultipartUploadInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.AbortMultipartUploadOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.AppendObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.AppendObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CompleteMultipartUploadInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CompleteMultipartUploadOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CompleteMultipartUploadV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CompleteMultipartUploadV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CopyObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CopyObjectV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CopyObjectV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CreateMultipartUploadInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CreateMultipartUploadOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteMultiObjectsInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteMultiObjectsOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteMultiObjectsV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteMultiObjectsV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteObjectTaggingInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteObjectTaggingOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DownloadFileInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DownloadFileOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.FetchObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.FetchObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetFetchTaskInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetFetchTaskOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetFileStatusInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetFileStatusOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectACLV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectACLV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectTaggingInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectTaggingOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectToFileInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectToFileOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetSymlinkInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetSymlinkOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.HeadObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.HeadObjectV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.HeadObjectV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListMultipartUploadsInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListMultipartUploadsOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListMultipartUploadsV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListMultipartUploadsV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectVersionsInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectVersionsOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectVersionsV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectVersionsV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsType2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsType2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListPartsInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListPartsOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListUploadedPartsInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListUploadedPartsOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ObjectMetaRequestOptions;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PreSignedPolicyURLInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PreSignedPolicyURLOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PreSignedPostSignatureInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PreSignedPostSignatureOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PreSignedURLInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PreSignedURLOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PreSingedPolicyURLInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PreSingedPolicyURLOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutFetchTaskInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutFetchTaskOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectACLInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectACLOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectFromFileInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectFromFileOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectTaggingInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectTaggingOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutSymlinkInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutSymlinkOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.RenameObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.RenameObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.RestoreObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.RestoreObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ResumableCopyObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ResumableCopyObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.SetObjectMetaInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.SetObjectMetaOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadFileInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadFileOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadFileV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadFileV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartCopyInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartCopyOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartCopyV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartCopyV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartFromFileInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartFromFileOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.transport.TransportConfig;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.classification.VisibleForTesting;
 import org.apache.hadoop.fs.tosfs.object.InputStreamProvider;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClientBuilder.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClientBuilder.java
similarity index 96%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClientBuilder.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClientBuilder.java
index 58b99eb0892..209053033a6 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClientBuilder.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/DelegationClientBuilder.java
@@ -18,9 +18,9 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.TOSClientConfiguration;
-import com.volcengine.tos.TosException;
-import com.volcengine.tos.transport.TransportConfig;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TOSClientConfiguration;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.transport.TransportConfig;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.hadoop.classification.VisibleForTesting;
 import org.apache.hadoop.conf.Configuration;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/GetObjectOutput.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/GetObjectOutput.java
similarity index 95%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/GetObjectOutput.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/GetObjectOutput.java
index 6a525d7beff..6b0eb2d32eb 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/GetObjectOutput.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/GetObjectOutput.java
@@ -18,7 +18,7 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.model.object.GetObjectV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectV2Output;
 import org.apache.hadoop.fs.tosfs.object.exceptions.ChecksumMismatchException;
 import org.apache.hadoop.fs.tosfs.util.CommonUtils;
 import org.apache.hadoop.util.Preconditions;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOS.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOS.java
similarity index 89%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOS.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOS.java
index 06a52f0f7c7..f0e70737502 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOS.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOS.java
@@ -16,51 +16,51 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.TOSV2;
-import com.volcengine.tos.TosException;
-import com.volcengine.tos.TosServerException;
-import com.volcengine.tos.comm.common.ACLType;
-import com.volcengine.tos.comm.common.BucketType;
-import com.volcengine.tos.internal.util.TypeConverter;
-import com.volcengine.tos.model.bucket.HeadBucketV2Input;
-import com.volcengine.tos.model.bucket.HeadBucketV2Output;
-import com.volcengine.tos.model.bucket.Tag;
-import com.volcengine.tos.model.object.AbortMultipartUploadInput;
-import com.volcengine.tos.model.object.AppendObjectOutput;
-import com.volcengine.tos.model.object.CompleteMultipartUploadV2Input;
-import com.volcengine.tos.model.object.CopyObjectV2Input;
-import com.volcengine.tos.model.object.CreateMultipartUploadInput;
-import com.volcengine.tos.model.object.CreateMultipartUploadOutput;
-import com.volcengine.tos.model.object.DeleteError;
-import com.volcengine.tos.model.object.DeleteMultiObjectsV2Input;
-import com.volcengine.tos.model.object.DeleteMultiObjectsV2Output;
-import com.volcengine.tos.model.object.DeleteObjectInput;
-import com.volcengine.tos.model.object.DeleteObjectTaggingInput;
-import com.volcengine.tos.model.object.GetFileStatusInput;
-import com.volcengine.tos.model.object.GetFileStatusOutput;
-import com.volcengine.tos.model.object.GetObjectBasicOutput;
-import com.volcengine.tos.model.object.GetObjectTaggingInput;
-import com.volcengine.tos.model.object.GetObjectTaggingOutput;
-import com.volcengine.tos.model.object.GetObjectV2Input;
-import com.volcengine.tos.model.object.GetObjectV2Output;
-import com.volcengine.tos.model.object.HeadObjectV2Input;
-import com.volcengine.tos.model.object.HeadObjectV2Output;
-import com.volcengine.tos.model.object.ListMultipartUploadsV2Input;
-import com.volcengine.tos.model.object.ListMultipartUploadsV2Output;
-import com.volcengine.tos.model.object.ListObjectsType2Input;
-import com.volcengine.tos.model.object.ListObjectsType2Output;
-import com.volcengine.tos.model.object.ListedCommonPrefix;
-import com.volcengine.tos.model.object.ListedObjectV2;
-import com.volcengine.tos.model.object.ListedUpload;
-import com.volcengine.tos.model.object.ObjectMetaRequestOptions;
-import com.volcengine.tos.model.object.ObjectTobeDeleted;
-import com.volcengine.tos.model.object.PutObjectOutput;
-import com.volcengine.tos.model.object.PutObjectTaggingInput;
-import com.volcengine.tos.model.object.RenameObjectInput;
-import com.volcengine.tos.model.object.TagSet;
-import com.volcengine.tos.model.object.UploadPartCopyV2Input;
-import com.volcengine.tos.model.object.UploadPartCopyV2Output;
-import com.volcengine.tos.model.object.UploadedPartV2;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TOSV2;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosServerException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.comm.common.ACLType;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.comm.common.BucketType;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.internal.util.TypeConverter;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.HeadBucketV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.HeadBucketV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.bucket.Tag;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.AbortMultipartUploadInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.AppendObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CompleteMultipartUploadV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CopyObjectV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CreateMultipartUploadInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.CreateMultipartUploadOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteError;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteMultiObjectsV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteMultiObjectsV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteObjectTaggingInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetFileStatusInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetFileStatusOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectBasicOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectTaggingInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectTaggingOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.HeadObjectV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.HeadObjectV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListMultipartUploadsV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListMultipartUploadsV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsType2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsType2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListedCommonPrefix;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListedObjectV2;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListedUpload;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ObjectMetaRequestOptions;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ObjectTobeDeleted;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectTaggingInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.RenameObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.TagSet;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartCopyV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartCopyV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadedPartV2;
 import org.apache.hadoop.classification.VisibleForTesting;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.tosfs.conf.ConfKeys;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSErrorCodes.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSErrorCodes.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSErrorCodes.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSErrorCodes.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSInputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSInputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSInputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSInputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSUtils.java
similarity index 95%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSUtils.java
index 93deef9e941..57f54202c93 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSUtils.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TOSUtils.java
@@ -18,8 +18,8 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.model.object.GetFileStatusOutput;
-import com.volcengine.tos.model.object.ListedObjectV2;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetFileStatusOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListedObjectV2;
 import org.apache.hadoop.fs.tosfs.common.Bytes;
 import org.apache.hadoop.fs.tosfs.object.ChecksumInfo;
 import org.apache.hadoop.fs.tosfs.object.ChecksumType;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TosObjectInfo.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TosObjectInfo.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TosObjectInfo.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/TosObjectInfo.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/AbstractCredentialsProvider.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/AbstractCredentialsProvider.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/AbstractCredentialsProvider.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/AbstractCredentialsProvider.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/CredentialsProvider.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/CredentialsProvider.java
similarity index 94%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/CredentialsProvider.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/CredentialsProvider.java
index f16d0c47b65..45698272ea2 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/CredentialsProvider.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/CredentialsProvider.java
@@ -18,7 +18,7 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos.auth;
 
-import com.volcengine.tos.auth.Credentials;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.auth.Credentials;
 import org.apache.hadoop.conf.Configuration;
 
 import javax.annotation.Nullable;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/DefaultCredentialsProviderChain.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/DefaultCredentialsProviderChain.java
similarity index 98%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/DefaultCredentialsProviderChain.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/DefaultCredentialsProviderChain.java
index 4201994280c..1e9a40b4e0e 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/DefaultCredentialsProviderChain.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/DefaultCredentialsProviderChain.java
@@ -16,7 +16,7 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos.auth;
 
-import com.volcengine.tos.TosException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosException;
 import org.apache.hadoop.classification.VisibleForTesting;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.util.Preconditions;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/EnvironmentCredentialsProvider.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/EnvironmentCredentialsProvider.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/EnvironmentCredentialsProvider.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/EnvironmentCredentialsProvider.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/ExpireableCredential.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/ExpireableCredential.java
similarity index 96%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/ExpireableCredential.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/ExpireableCredential.java
index 24319775668..750ec75a14b 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/ExpireableCredential.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/ExpireableCredential.java
@@ -16,7 +16,7 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos.auth;
 
-import com.volcengine.tos.auth.Credential;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.auth.Credential;
 import org.apache.hadoop.fs.tosfs.conf.TosKeys;
 import org.apache.hadoop.util.Preconditions;
 
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/SimpleCredentialsProvider.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/SimpleCredentialsProvider.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/SimpleCredentialsProvider.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/object/tos/auth/SimpleCredentialsProvider.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/ops/DefaultFsOps.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/ops/DefaultFsOps.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/ops/DefaultFsOps.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/ops/DefaultFsOps.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/ops/DirectoryFsOps.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/ops/DirectoryFsOps.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/ops/DirectoryFsOps.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/ops/DirectoryFsOps.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/ops/FsOps.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/ops/FsOps.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/ops/FsOps.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/ops/FsOps.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/ops/RenameOp.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/ops/RenameOp.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/ops/RenameOp.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/ops/RenameOp.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/CommonUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/CommonUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/CommonUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/CommonUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/FSUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/FSUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/FSUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/FSUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/FuseUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/FuseUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/FuseUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/FuseUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/Iterables.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/Iterables.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/Iterables.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/Iterables.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/JsonCodec.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/JsonCodec.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/JsonCodec.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/JsonCodec.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/LazyReload.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/LazyReload.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/LazyReload.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/LazyReload.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/LazyReloadIter.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/LazyReloadIter.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/LazyReloadIter.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/LazyReloadIter.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/ParseUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/ParseUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/ParseUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/ParseUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/Range.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/Range.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/Range.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/Range.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/Reload.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/Reload.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/Reload.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/Reload.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/RemoteIterators.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/RemoteIterators.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/RemoteIterators.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/RemoteIterators.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/RetryableUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/RetryableUtils.java
similarity index 93%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/RetryableUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/RetryableUtils.java
index 7117a6becc2..73aee47f0dd 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/RetryableUtils.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/RetryableUtils.java
@@ -27,7 +27,7 @@ public class RetryableUtils {
   }
 
   /**
-   * Copy from {@link com.volcengine.tos.internal.util.TosUtils#backoff(int)}
+   * Copy from {@link org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.internal.util.TosUtils#backoff(int)}
    *
    * @param attempt the attempt count
    * @return backoff milliseconds
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/Serializer.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/Serializer.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/Serializer.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/Serializer.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/TOSClientContextUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/TOSClientContextUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/TOSClientContextUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/TOSClientContextUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/UUIDUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/UUIDUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/main/java/org/apache/hadoop/fs/tosfs/util/UUIDUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/main/java/org/apache/hadoop/fs/tosfs/util/UUIDUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/site/markdown/cloud-storage/index.md b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/site/markdown/cloud-storage/index.md
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/site/markdown/cloud-storage/index.md
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/site/markdown/cloud-storage/index.md
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestEnv.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestEnv.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestEnv.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestEnv.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestRawFSUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestRawFSUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestRawFSUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestRawFSUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestRawFileSystem.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestRawFileSystem.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestRawFileSystem.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestRawFileSystem.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestTosChecksum.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestTosChecksum.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestTosChecksum.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestTosChecksum.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestTosFileSystem.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestTosFileSystem.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/TestTosFileSystem.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/TestTosFileSystem.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/BaseJobSuite.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/BaseJobSuite.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/BaseJobSuite.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/BaseJobSuite.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/CommitterTestBase.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/CommitterTestBase.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/CommitterTestBase.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/CommitterTestBase.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/JobSuite.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/JobSuite.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/JobSuite.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/JobSuite.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/MRJobTestBase.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/MRJobTestBase.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/MRJobTestBase.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/MRJobTestBase.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestCommitter.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestCommitter.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestCommitter.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestCommitter.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestMRJob.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestMRJob.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestMRJob.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestMRJob.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestMagicOutputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestMagicOutputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestMagicOutputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/TestMagicOutputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/CommitterTestBase.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/CommitterTestBase.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/CommitterTestBase.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/CommitterTestBase.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/JobSuite.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/JobSuite.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/JobSuite.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/JobSuite.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/TestCommitter.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/TestCommitter.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/TestCommitter.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/commit/mapred/TestCommitter.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestChecksum.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestChecksum.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestChecksum.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestChecksum.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestCreate.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestCreate.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestCreate.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestCreate.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestDelete.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestDelete.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestDelete.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestDelete.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestDistCp.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestDistCp.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestDistCp.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestDistCp.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestGetFileStatus.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestGetFileStatus.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestGetFileStatus.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestGetFileStatus.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestMkdir.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestMkdir.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestMkdir.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestMkdir.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestOpen.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestOpen.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestOpen.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestOpen.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestRename.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestRename.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestRename.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestRename.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestRootDir.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestRootDir.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestRootDir.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestRootDir.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestSeek.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestSeek.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestSeek.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestSeek.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestUnbuffer.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestUnbuffer.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestUnbuffer.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestUnbuffer.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestXAttr.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestXAttr.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestXAttr.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TestXAttr.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TosContract.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TosContract.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/contract/TosContract.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/contract/TosContract.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/ObjectStorageTestBase.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/ObjectStorageTestBase.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/ObjectStorageTestBase.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/ObjectStorageTestBase.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/ObjectTestUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/ObjectTestUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/ObjectTestUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/ObjectTestUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestDirectoryStorage.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestDirectoryStorage.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestDirectoryStorage.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestDirectoryStorage.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectMultiRangeInputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectMultiRangeInputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectMultiRangeInputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectMultiRangeInputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectOutputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectOutputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectOutputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectOutputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectRangeInputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectRangeInputStream.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectRangeInputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectRangeInputStream.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectStorage.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectStorage.java
similarity index 99%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectStorage.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectStorage.java
index cbe1677a710..5316952f6f2 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectStorage.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/TestObjectStorage.java
@@ -18,7 +18,7 @@
 
 package org.apache.hadoop.fs.tosfs.object;
 
-import com.volcengine.tos.TosServerException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosServerException;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.conf.Configuration;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestChainTOSInputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestChainTOSInputStream.java
similarity index 98%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestChainTOSInputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestChainTOSInputStream.java
index 0dd31d208c8..32817960583 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestChainTOSInputStream.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestChainTOSInputStream.java
@@ -18,8 +18,8 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.model.object.GetObjectBasicOutput;
-import com.volcengine.tos.model.object.GetObjectV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectBasicOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectV2Output;
 import org.apache.hadoop.fs.tosfs.common.Bytes;
 import org.apache.hadoop.fs.tosfs.object.Constants;
 import org.apache.hadoop.fs.tosfs.util.TestUtility;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestDelegationClientBuilder.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestDelegationClientBuilder.java
similarity index 94%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestDelegationClientBuilder.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestDelegationClientBuilder.java
index bbe34b0a81b..7e788c5ccd0 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestDelegationClientBuilder.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestDelegationClientBuilder.java
@@ -18,20 +18,20 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.TOSV2;
-import com.volcengine.tos.TOSV2ClientBuilder;
-import com.volcengine.tos.TosClientException;
-import com.volcengine.tos.TosException;
-import com.volcengine.tos.TosServerException;
-import com.volcengine.tos.auth.Credential;
-import com.volcengine.tos.auth.StaticCredentials;
-import com.volcengine.tos.comm.HttpStatus;
-import com.volcengine.tos.model.object.DeleteObjectInput;
-import com.volcengine.tos.model.object.HeadObjectV2Input;
-import com.volcengine.tos.model.object.HeadObjectV2Output;
-import com.volcengine.tos.model.object.ListObjectsV2Input;
-import com.volcengine.tos.model.object.ListObjectsV2Output;
-import com.volcengine.tos.model.object.PutObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TOSV2;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TOSV2ClientBuilder;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosClientException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosServerException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.auth.Credential;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.auth.StaticCredentials;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.comm.HttpStatus;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.DeleteObjectInput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.HeadObjectV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.HeadObjectV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsV2Input;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.ListObjectsV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectInput;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.tosfs.TestEnv;
 import org.apache.hadoop.fs.tosfs.common.Tasks;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSInputStream.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSInputStream.java
similarity index 94%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSInputStream.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSInputStream.java
index 59f9862d7de..50e6f229a66 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSInputStream.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSInputStream.java
@@ -18,9 +18,9 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.internal.util.aborthook.AbortInputStreamHook;
-import com.volcengine.tos.model.object.GetObjectBasicOutput;
-import com.volcengine.tos.model.object.GetObjectV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.internal.util.aborthook.AbortInputStreamHook;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectBasicOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.GetObjectV2Output;
 import org.apache.hadoop.fs.tosfs.object.Constants;
 import org.apache.hadoop.fs.tosfs.util.TestUtility;
 import org.apache.hadoop.thirdparty.com.google.common.io.ByteStreams;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSObjectStorage.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSObjectStorage.java
similarity index 99%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSObjectStorage.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSObjectStorage.java
index 3b97cf25e3f..3895a20389b 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSObjectStorage.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSObjectStorage.java
@@ -18,7 +18,7 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.internal.model.CRC64Checksum;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.internal.model.CRC64Checksum;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.tosfs.TestEnv;
 import org.apache.hadoop.fs.tosfs.common.Bytes;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSRetryPolicy.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSRetryPolicy.java
similarity index 93%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSRetryPolicy.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSRetryPolicy.java
index a17c92504d0..2bcec4e086f 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSRetryPolicy.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/TestTOSRetryPolicy.java
@@ -18,13 +18,13 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos;
 
-import com.volcengine.tos.TOSV2;
-import com.volcengine.tos.TosException;
-import com.volcengine.tos.TosServerException;
-import com.volcengine.tos.comm.HttpStatus;
-import com.volcengine.tos.model.RequestInfo;
-import com.volcengine.tos.model.object.PutObjectOutput;
-import com.volcengine.tos.model.object.UploadPartV2Output;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TOSV2;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosServerException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.comm.HttpStatus;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.RequestInfo;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.PutObjectOutput;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.model.object.UploadPartV2Output;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.tosfs.TestEnv;
 import org.apache.hadoop.fs.tosfs.conf.ConfKeys;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestAbstractCredentialsProvider.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestAbstractCredentialsProvider.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestAbstractCredentialsProvider.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestAbstractCredentialsProvider.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestDefaultCredentialsProviderChain.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestDefaultCredentialsProviderChain.java
similarity index 99%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestDefaultCredentialsProviderChain.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestDefaultCredentialsProviderChain.java
index ca5f0ff7e36..77b51559b7e 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestDefaultCredentialsProviderChain.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestDefaultCredentialsProviderChain.java
@@ -16,7 +16,7 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos.auth;
 
-import com.volcengine.tos.TosException;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.TosException;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.tosfs.conf.TosKeys;
 import org.apache.hadoop.fs.tosfs.object.tos.TOS;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestEnvironmentCredentialsProvider.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestEnvironmentCredentialsProvider.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestEnvironmentCredentialsProvider.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestEnvironmentCredentialsProvider.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestSimpleCredentialsProvider.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestSimpleCredentialsProvider.java
similarity index 97%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestSimpleCredentialsProvider.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestSimpleCredentialsProvider.java
index 3579ff73e87..c61dd0b339c 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestSimpleCredentialsProvider.java
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/object/tos/auth/TestSimpleCredentialsProvider.java
@@ -16,7 +16,7 @@
 
 package org.apache.hadoop.fs.tosfs.object.tos.auth;
 
-import com.volcengine.tos.auth.Credential;
+import org.apache.hadoop.fs.tosfs.shaded.com.volcengine.tos.auth.Credential;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.tosfs.conf.TosKeys;
 import org.junit.Assert;
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestBaseFsOps.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestBaseFsOps.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestBaseFsOps.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestBaseFsOps.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestBaseOps.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestBaseOps.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestBaseOps.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestBaseOps.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestDefaultFsOps.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestDefaultFsOps.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestDefaultFsOps.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestDefaultFsOps.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestDirectoryFsOps.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestDirectoryFsOps.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestDirectoryFsOps.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestDirectoryFsOps.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestRenameOp.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestRenameOp.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestRenameOp.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/ops/TestRenameOp.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TempFiles.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TempFiles.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TempFiles.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TempFiles.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestFSUtils.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestFSUtils.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestFSUtils.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestFSUtils.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestIterables.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestIterables.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestIterables.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestIterables.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestLazyReload.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestLazyReload.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestLazyReload.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestLazyReload.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestRange.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestRange.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestRange.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestRange.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestUtility.java b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestUtility.java
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/java/org/apache/hadoop/fs/tosfs/util/TestUtility.java
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/java/org/apache/hadoop/fs/tosfs/util/TestUtility.java
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/resources/contract/tos.xml b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/resources/contract/tos.xml
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/resources/contract/tos.xml
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/resources/contract/tos.xml
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/resources/core-site.xml b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/resources/core-site.xml
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/resources/core-site.xml
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/resources/core-site.xml
diff --git a/hadoop-cloud-storage-project/hadoop-tos/src/test/resources/log4j.properties b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/resources/log4j.properties
similarity index 100%
rename from hadoop-cloud-storage-project/hadoop-tos/src/test/resources/log4j.properties
rename to hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-core/src/test/resources/log4j.properties
diff --git a/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-shade/pom.xml b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-shade/pom.xml
new file mode 100644
index 00000000000..bc41731d3ab
--- /dev/null
+++ b/hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-shade/pom.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License. See accompanying LICENSE file.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.hadoop</groupId>
+    <artifactId>hadoop-project</artifactId>
+    <version>3.5.0-SNAPSHOT</version>
+    <relativePath>../../../hadoop-project</relativePath>
+  </parent>
+
+  <artifactId>hadoop-tos-shade</artifactId>
+  <version>3.5.0-SNAPSHOT</version>
+  <name>Apache Hadoop Volcano Engine Services Shade Dependencies</name>
+  <description>
+    This module contains code to support integration with Volcano Engine TOS.
+    It also declares the dependencies needed to work with Volcano Engine services.
+  </description>
+  <packaging>jar</packaging>
+
+  <properties>
+    <file.encoding>UTF-8</file.encoding>
+    <ve-tos-java-sdk.version>2.8.6</ve-tos-java-sdk.version>
+    <tos.shading.prefix>org.apache.hadoop.fs.tosfs.shaded</tos.shading.prefix>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <!-- The ve-tos-java-sdk 2.8.6 depends on okhttp, but okhttp violates dependency convergence.
+        The com.squareup.okhttp3:okhttp:jar:4.10.0 depends on org.jetbrains.kotlin:kotlin-stdlib-common,
+        with 2 different versions: 1.5.31 and 1.6.20. Force configure it to 1.6.20. -->
+      <dependency>
+        <groupId>org.jetbrains.kotlin</groupId>
+        <artifactId>kotlin-stdlib-common</artifactId>
+        <version>1.6.20</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>com.volcengine</groupId>
+      <artifactId>ve-tos-java-sdk</artifactId>
+      <version>${ve-tos-java-sdk.version}</version>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>${maven-shade-plugin.version}</version>
+        <executions>
+          <execution>
+            <id>shade-tos-sdk</id>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              <shadeSourcesContent>true</shadeSourcesContent>
+              <createSourcesJar>true</createSourcesJar>
+              <artifactSet>
+                <includes>
+                  <include>com.volcengine:*</include>
+                  <include>com.squareup.okhttp3:okhttp</include>
+                  <include>com.squareup.okio:okio-jvm</include>
+                  <include>org.jetbrains.kotlin:kotlin-stdlib*</include>
+                  <include>org.jetbrains:annotations</include>
+                  <include>com.fasterxml.jackson.core:*</include>
+                  <include>commons-codec:commons-codec</include>
+                </includes>
+              </artifactSet>
+              <relocations>
+                <relocation>
+                  <pattern>com.volcengine.tos</pattern>
+                  <shadedPattern>${tos.shading.prefix}.com.volcengine.tos</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>com.fasterxml.jackson</pattern>
+                  <shadedPattern>${tos.shading.prefix}.com.fasterxml.jackson</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>okhttp3</pattern>
+                  <shadedPattern>${tos.shading.prefix}.okhttp3</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>okio</pattern>
+                  <shadedPattern>${tos.shading.prefix}.okio</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>kotlin</pattern>
+                  <shadedPattern>${tos.shading.prefix}.kotlin</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.apache.commons.codec</pattern>
+                  <shadedPattern>${tos.shading.prefix}.org.apache.commons.codec</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.jetbrains</pattern>
+                  <shadedPattern>${tos.shading.prefix}.org.jetbrains</shadedPattern>
+                </relocation>
+                <relocation>
+                  <pattern>org.intellij</pattern>
+                  <shadedPattern>${tos.shading.prefix}.org.intellij</shadedPattern>
+                </relocation>
+              </relocations>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/hadoop-cloud-storage-project/hadoop-tos/pom.xml b/hadoop-cloud-storage-project/hadoop-tos/pom.xml
index 86994472595..7df758c346b 100644
--- a/hadoop-cloud-storage-project/hadoop-tos/pom.xml
+++ b/hadoop-cloud-storage-project/hadoop-tos/pom.xml
@@ -30,100 +30,16 @@
     This module contains code to support integration with Volcano Engine TOS.
     It also declares the dependencies needed to work with Volcano Engine services.
   </description>
-  <packaging>jar</packaging>
+  <packaging>pom</packaging>
 
   <properties>
     <file.encoding>UTF-8</file.encoding>
     <ve-tos-java-sdk.version>2.8.6</ve-tos-java-sdk.version>
+    <tos.shading.prefix>org.apache.hadoop.fs.tosfs.shaded</tos.shading.prefix>
   </properties>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-common</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-mapreduce-client-core</artifactId>
-      <scope>provided</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-common</artifactId>
-      <scope>test</scope>
-      <type>test-jar</type>
-    </dependency>
-    <!-- Artifacts needed to bring up a Mini MR Yarn cluster-->
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-mapreduce-examples</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-minicluster</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>com.volcengine</groupId>
-      <artifactId>ve-tos-java-sdk</artifactId>
-      <version>${ve-tos-java-sdk.version}</version>
-      <exclusions>
-        <exclusion>
-          <groupId>org.jetbrains.kotlin</groupId>
-          <artifactId>kotlin-stdlib-common</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-
-    <dependency>
-      <groupId>org.assertj</groupId>
-      <artifactId>assertj-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-distcp</artifactId>
-      <version>${hadoop.version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.hadoop</groupId>
-      <artifactId>hadoop-distcp</artifactId>
-      <version>${hadoop.version}</version>
-      <scope>test</scope>
-      <type>test-jar</type>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.21.0</version>
-        <configuration>
-          <parallel>classes</parallel>
-          <threadCount>1</threadCount>
-          <perCoreThreadCount>true</perCoreThreadCount>
-          <rerunFailingTestsCount>2</rerunFailingTestsCount>
-          <forkCount>8</forkCount>
-          <argLine>-Xmx2048m</argLine>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
+  <modules>
+    <module>hadoop-tos-core</module>
+    <module>hadoop-tos-shade</module>
+  </modules>
 </project>
diff --git a/hadoop-project/pom.xml b/hadoop-project/pom.xml
index ca72a855abd..6b43ad59319 100644
--- a/hadoop-project/pom.xml
+++ b/hadoop-project/pom.xml
@@ -782,6 +782,18 @@
         <version>${hadoop.version}</version>
       </dependency>
 
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-tos-core</artifactId>
+        <version>${hadoop.version}</version>
+      </dependency>
+
+      <dependency>
+        <groupId>org.apache.hadoop</groupId>
+        <artifactId>hadoop-tos-shade</artifactId>
+        <version>${hadoop.version}</version>
+      </dependency>
+
       <dependency>
         <groupId>org.apache.hadoop</groupId>
         <artifactId>hadoop-kms</artifactId>
diff --git a/pom.xml b/pom.xml
index 5d2775a813c..5aef75c9fe8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -311,6 +311,13 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/x
                       <bannedImport>org.apache.commons.logging.**</bannedImport>
                     </bannedImports>
                   </restrictImports>
+                  <restrictImports>
+                    <includeTestCode>true</includeTestCode>
+                    <reason>Use shaded tos sdk</reason>
+                    <bannedImports>
+                      <bannedImport>com.volcengine.tos.**</bannedImport>
+                    </bannedImports>
+                  </restrictImports>
                 </rules>
               </configuration>
             </execution>


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org