jlalwani-amazon commented on PR #37:
URL: 
https://github.com/apache/flink-connector-hive/pull/37#issuecomment-4426014751

   **Note on the separate Maven module and cyclic dependency:**
   
   Previous shims (V230–V313) compile against Hive 2.3 because API differences 
between 2.3 and 3.1 were minor. Hive 4 has far more breaking changes (removed 
classes, changed return types, relocated packages), making it impossible to 
compile against Hive 2.3 jars. The dedicated `flink-connector-hive-4.0.0` 
module compiles `HiveShimV400` against Hive 4 jars so all calls are direct — no 
reflection needed.
   
   This creates a Maven cycle: the shim depends on the main connector (for the 
`HiveShim` interface), and the main connector depends on the shim at runtime 
(loaded by reflection). We break it with a two-phase CI build and an 
`activeByDefault` profile trick in the root pom.
   
   **Considered alternative:** Extract `HiveShim` into a dedicated API module 
(`flink-connector-hive-shim-api`) that both the main connector and all shim 
modules depend on. This eliminates the cycle entirely but is a 50+ file 
refactor that would make this PR unreviewable. Happy to do it as a prerequisite 
PR if preferred — it's a pure refactor with no functional changes.


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