hudi-agent commented on code in PR #20020:
URL: https://github.com/apache/hudi/pull/20020#discussion_r4068833518


##########
packaging/hudi-gcp-bundle/pom.xml:
##########
@@ -99,7 +99,18 @@
                   <include>org.apache.hudi:hudi-hive-sync</include>
                   <include>org.apache.hudi:hudi-gcp</include>
                   <include>org.apache.parquet:parquet-avro</include>
-                  <include>com.google.cloud:google-cloud-bigquery</include>
+                  <!-- Google Cloud SDK -->
+                  <include>com.google.cloud:*</include>
+                  <include>com.google.api:*</include>

Review Comment:
   🤖 `com.google.api:*` doesn't match 
`com.google.apis:google-api-services-storage` (different groupId), and 
`com.google.code.gson:gson` / `org.threeten:threetenbp` are also outside the 
allowlist. All three are direct runtime deps of `google-cloud-storage` 2.22 
(the default HTTP JSON transport goes through the services-storage client + 
gson, and gax `RetrySettings` uses threetenbp). Could you verify the lock 
provider actually initializes at runtime with only this bundle on the 
classpath, rather than just `package -DskipTests`?
   
   <sub><i>⚠️ AI-generated; verify before applying. React 👍/👎 to flag 
quality.</i></sub>



##########
packaging/hudi-gcp-bundle/pom.xml:
##########
@@ -99,7 +99,18 @@
                   <include>org.apache.hudi:hudi-hive-sync</include>
                   <include>org.apache.hudi:hudi-gcp</include>
                   <include>org.apache.parquet:parquet-avro</include>
-                  <include>com.google.cloud:google-cloud-bigquery</include>
+                  <!-- Google Cloud SDK -->
+                  <include>com.google.cloud:*</include>
+                  <include>com.google.api:*</include>
+                  <include>com.google.api-client:*</include>
+                  <include>com.google.api.grpc:*</include>
+                  <include>com.google.auth:*</include>
+                  <include>com.google.http-client:*</include>
+                  <include>com.google.oauth-client:*</include>
+                  <include>com.google.protobuf:*</include>

Review Comment:
   🤖 Shading `com.google.protobuf:*` and `io.grpc:*` without a relocation puts 
protobuf-java 3.25 on the same classpath as the protobuf that Hadoop (2.5.0) / 
Spark already ship, and hudi-utilities-bundle also bundles an unrelocated 
protobuf-java. Depending on classpath order either Hadoop RPC or the GCS client 
can hit `NoSuchMethodError`. Have you considered relocating these (e.g. to 
`org.apache.hudi.com.google.protobuf` / `org.apache.hudi.io.grpc`), the way the 
flink bundle relocates `com.google.common`? @yihua might have an opinion on the 
bundle policy here.
   
   <sub><i>⚠️ AI-generated; verify before applying. React 👍/👎 to flag 
quality.</i></sub>



-- 
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]

Reply via email to