pan3793 commented on code in PR #7294:
URL: https://github.com/apache/hadoop/pull/7294#discussion_r1923931866


##########
hadoop-cloud-storage-project/hadoop-tos/hadoop-tos-shade/pom.xml:
##########
@@ -0,0 +1,132 @@
+<?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>

Review Comment:
   an alternative: publish `ve-tos-java-sdk-shaded`, and downstream projects 
like Hadoop simply consume the single jar, this will address the test coverage 
concern I mentioned above and save a lot of users for handling class conflict.
   
   I glanced TOS repo 
[README](https://github.com/volcengine/ve-tos-java-sdk/blob/main/README.md) and 
[docs](https://www.volcengine.com/docs/6349/79894), seems OKHTTP/OKIO is not 
leaked to public API, so either switching to another HTTP client or creating a 
`ve-tos-java-sdk-shaded` with all 3rd classes relocated to 
`com.volcengine.tos.` package is feasible, thought?
   
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to