Yikf commented on code in PR #43436:
URL: https://github.com/apache/spark/pull/43436#discussion_r1372554800


##########
connector/connect/client/jvm/pom.xml:
##########
@@ -124,6 +124,10 @@
                 <include>io.grpc.**</include>
               </includes>
             </relocation>
+            <relocation>

Review Comment:
   The current Apache Spark includes two versions of Guava, which are (The 
historical reasons are not clear to me. @LuciferYang may know some background):
   1. 
https://github.com/apache/spark/blob/8cdcfd262f9fd46fb9a8e1ceb0bccefe452582bd/pom.xml#L203
   2. 
https://github.com/apache/spark/blob/8cdcfd262f9fd46fb9a8e1ceb0bccefe452582bd/pom.xml#L292
   
   The current Apache Spark has shading in the following three places for these 
two versions:
   1. for guava.version
   
https://github.com/apache/spark/blob/8cdcfd262f9fd46fb9a8e1ceb0bccefe452582bd/common/network-common/pom.xml#L125-L129
   2. for connect.guava.version
   
https://github.com/apache/spark/blob/8cdcfd262f9fd46fb9a8e1ceb0bccefe452582bd/connector/connect/server/pom.xml#L310-L316
   3. for conflicting versions, the connect-common does not override the 
parent's shade plugin, so it is relocated to 
'${spark.shade.packageName}.guava'. However, the Guava version of 
connect-common is connect.guava.version, which results in two versions of the 
same package in the classpath.
   
https://github.com/apache/spark/blob/8cdcfd262f9fd46fb9a8e1ceb0bccefe452582bd/connector/connect/common/pom.xml#L50-L61
   
   Based on the above, it will lead to:
   - The server with the connect profile has version 'guava.version' of 
'${spark.shade.packageName}.guava'.
   - The server with the connect profile has version 'connect.guava.version' of 
'${spark.shade.packageName}.guava'.
   - The server with the connect profile has version 'connect.guava.version' of 
'${spark.shade.packageName}.connect.guava'.
   - The server with the connect profile does not have version 
'connect.guava.version' of 'failureaccess'
   
   
   This PR plans to make modifications following this line of thought,  we 
should use connect-common shade guava, connect-client and connect-server shade 
connect-common to make connect-server and connect-client use the same guava 
dependency.
   
   



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to