onceMisery opened a new pull request, #10605: URL: https://github.com/apache/seatunnel/pull/10605
### Purpose of this pull request This PR completes Pulsar source support for [#10425](https://github.com/apache/seatunnel/issues/10425) and fixes related compatibility issues. Main updates: 1. Support multi-table source config (`tables_configs`) with unified single-table/multi-table runtime path. 2. Make overlapping `topic-pattern` routing deterministic by `tables_configs` order (first match wins). 3. Preserve single-table compatibility and fix Canal pipeline regression (avoid unintended `tableId` override in single-table reader path). 4. Refactor `PulsarSource` config/build logic for better maintainability. 5. Update Pulsar source docs in both EN/ZH. ### Does this PR introduce _any_ user-facing change? Yes. - New capability: Pulsar source supports multi-table configuration (`tables_configs`). - Behavior clarification: overlapping `topic-pattern` in multi-table mode is resolved deterministically by declaration order. - Compatibility fix: single-table Canal -> Pulsar -> JDBC path is restored (no silent data loss caused by `tableId` override). - Docs updated: - `docs/en/connectors/source/Pulsar.md` - `docs/zh/connectors/source/Pulsar.md` ### How was this patch tested? - `./mvnw -pl seatunnel-connectors-v2/connector-pulsar -am spotless:apply` - `./mvnw -pl seatunnel-connectors-v2/connector-pulsar -am -DskipTests verify` Added/updated tests: - `PulsarSourceTest` - `PulsarMultiTableConfigTest` - `MultiTablePartitionDiscovererTest` - `PulsarSourceReaderRestoreTest` Note: local surefire test runtime may hit existing shaded classpath `NoClassDefFoundError` issues unrelated to this patch. ### Check list * [x] If any new Jar binary package adding in your PR, please add License Notice according [New License Guide](https://github.com/apache/seatunnel/blob/dev/docs/en/contribution/new-license.md) (N/A) * [x] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs * [x] If necessary, please update `incompatible-changes.md` to describe the incompatibility caused by this PR. (N/A) * [x] If you are contributing the connector code, please check that the following files are updated: 1. Update [plugin-mapping.properties](https://github.com/apache/seatunnel/blob/dev/plugin-mapping.properties) (N/A) 2. Update [seatunnel-dist/pom.xml](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml) (N/A) 3. Add ci label in [label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml) (N/A) 4. Add e2e testcase in [seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/) (covered by existing Pulsar E2E) 5. Update [plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config) (N/A) -- 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]
