voonhous commented on code in PR #19425:
URL: https://github.com/apache/hudi/pull/19425#discussion_r3803139286


##########
packaging/hudi-utilities-bundle/pom.xml:
##########
@@ -153,6 +153,43 @@
                   <include>com.101tec:zkclient</include>
                   <include>org.apache.kafka:kafka-clients</include>
 
+                  <!-- AWS SDK v2 core, shared by the kinesis and sts clients 
below; relocated further down. -->
+                  <include>software.amazon.awssdk:annotations</include>
+                  <include>software.amazon.awssdk:utils</include>
+                  <include>software.amazon.awssdk:sdk-core</include>
+                  <include>software.amazon.awssdk:aws-core</include>
+                  <include>software.amazon.awssdk:auth</include>
+                  <include>software.amazon.awssdk:http-client-spi</include>
+                  <include>software.amazon.awssdk:regions</include>
+                  <include>software.amazon.awssdk:metrics-spi</include>
+                  <include>software.amazon.awssdk:json-utils</include>
+                  <include>software.amazon.awssdk:endpoints-spi</include>
+                  <include>software.amazon.awssdk:retries</include>
+                  <include>software.amazon.awssdk:retries-spi</include>
+                  <include>software.amazon.awssdk:checksums</include>
+                  <include>software.amazon.awssdk:checksums-spi</include>
+                  <include>software.amazon.awssdk:identity-spi</include>
+                  <include>software.amazon.awssdk:http-auth</include>
+                  <include>software.amazon.awssdk:http-auth-spi</include>
+                  <include>software.amazon.awssdk:http-auth-aws</include>
+                  
<include>software.amazon.awssdk:http-auth-aws-eventstream</include>
+                  <include>software.amazon.awssdk:protocol-core</include>
+                  <include>software.amazon.awssdk:apache-client</include>
+                  <include>software.amazon.awssdk:netty-nio-client</include>
+                  <include>org.reactivestreams:reactive-streams</include>
+                  <!-- Kinesis client for JsonKinesisSource -->
+                  <include>software.amazon.awssdk:kinesis</include>
+                  <include>software.amazon.awssdk:aws-cbor-protocol</include>
+                  <include>software.amazon.awssdk:aws-json-protocol</include>
+                  
<include>software.amazon.awssdk:third-party-jackson-dataformat-cbor</include>
+                  
<include>software.amazon.awssdk:third-party-jackson-core</include>
+                  <!-- STS: assume-role credentials for cross-account Kinesis 
reads (KinesisOffsetGen). -->
+                  <include>software.amazon.awssdk:sts</include>
+                  <include>software.amazon.awssdk:aws-query-protocol</include>
+                  <include>software.amazon.awssdk:profiles</include>
+                  <!-- KPL de-aggregation: extracts user records from Kinesis 
Producer Library aggregated records -->
+                  <include>com.amazonaws:amazon-kinesis-deaggregator</include>

Review Comment:
   Adding `amazon-kinesis-client` at the resolved 1.8.8 would make this worse, 
not better: both it and `amazon-kinesis-deaggregator:1.0.3` are under the 
Amazon Software License (their POMs say so, and the built jar's 
`META-INF/DEPENDENCIES` prints `License: Amazon Software License` for the 
deaggregator), which ASF legal lists as Category X and may not ship in a 
convenience binary. KCL is Apache-2.0 only from 1.12.0. This include is also 
dead weight: it adds two `com/amazonaws/kinesis/deagg/*` classes that nothing 
in Hudi calls (`KinesisDeaggregator` uses KCL's `UserRecord`, a different 
artifact).
   
   Two asks:
   
   1. Drop `<include>com.amazonaws:amazon-kinesis-deaggregator</include>` from 
this PR.
   2. State in the PR body that the default path still does not run from the 
bundle alone: `hoodie.streamer.source.kinesis.enable.deaggregation` defaults to 
true and `KinesisDeaggregator.deaggregate` converts every record to SDK v1 
first, so bundle-only fails with `NoClassDefFoundError: 
com/amazonaws/services/kinesis/model/Record` even for plain records (verified 
from the built jar). The minimal closure for that path is 
`amazon-kinesis-client` (>= 1.12.0) + `aws-java-sdk-kinesis` + 
`aws-java-sdk-core` + `commons-lang`, relocated under `com.amazonaws` so EMR's 
`aws-java-sdk-bundle` cannot shadow them; cleaner is to move 
`KinesisDeaggregator` off KCL/SDK v1 entirely (the KPL frame is 4 magic bytes + 
one protobuf message + MD5, decodable on the protobuf-java this bundle already 
ships). Either belongs in a follow-up PR; this one should not claim standalone 
Kinesis works until it lands. Separately, `hudi-utilities` has had a compile 
dependency on the ASL deaggregator since #18224, which d
 eserves its own issue regardless of this PR.



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