DanielLeens commented on PR #11639:
URL: https://github.com/apache/seatunnel/pull/11639#issuecomment-6594689230

   Pushed `b793521df7b` to fix an OceanBase CDC runtime gap that this PR 
introduces once it is combined with #12477 (already in the merge base).
   
   **Problem.** `connector-cdc-oceanbase/pom.xml` excluded 
`io.debezium:debezium-core` and `debezium-api` from its `connector-cdc-mysql` 
dependency, with the note that `connector-cdc-base` provides them. This PR 
makes `connector-cdc-base` declare Debezium as `provided`, so the base jar now 
ships only its five patched `io.debezium` classes. With the exclusions still in 
place, nothing put the stock Debezium runtime 
(`io.debezium.config.Configuration`, `io.debezium.engine.DebeziumEngine`, ...) 
into the OceanBase jar, and its `MySqlIncrementalSource`-based source would 
fail with `NoClassDefFoundError`. The existing `TestOceanBaseCdcPackagingIT` 
did not catch this: it only checks for classes shadowing `connector-cdc-base`, 
and an empty Debezium set passes that check trivially.
   
   **Fix.**
   - Removed the two exclusions, so OceanBase bundles Debezium the same way 
`connector-cdc-mysql` now does. The `connector-cdc` parent shade filter added 
in this PR still drops the stock `ChangeEventQueue` / `TableId` / 
`HistorizedRelationalDatabaseConnectorConfig` / `HeartbeatFactory` classes, so 
the patched Serializable `TableId` from `connector-cdc-base` stays the only 
definition. The two existing packaging assertions (no shadowed classes, 
`TableId` serializable when the connector jar comes first) remain the guard for 
that.
   - Extended `TestOceanBaseCdcPackagingIT` with 
`packagedJarShipsStockDebeziumRuntime`, which asserts the packaged jar contains 
`io/debezium/config/Configuration.class` (debezium-core) and 
`io/debezium/engine/DebeziumEngine.class` (debezium-api). It fails on the 
previous head.
   - Added an OceanBase line to the EN/ZH incompatible-changes entry.
   
   TiDB CDC was also checked: it only uses `SourceOptions`, `StartupMode` and 
`TemporalConversions` from cdc-base and no Debezium types, so it is unaffected.
   
   Only `spotless` was run locally; the fork CI run on `b793521df7b` is the 
verification.
   


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