goutamadwant opened a new pull request, #12432:
URL: https://github.com/apache/seatunnel/pull/12432
### Purpose of this pull request
Relates to #10681. This is one connector slice, not completion of the
umbrella issue.
RabbitMQ sources currently report connectivity as `SKIPPED` under `--dry-run
connect`. This adds a source-only implementation of the existing
`SupportSourceDryRunValidation` interface.
- Share pure catalog-table construction with the runtime source, including
multi-table and Protobuf options.
- Reuse runtime URI, virtual-host, authentication and TLS configuration in a
separate short-lived connection.
- Check configured queues with passive declarations only. Do not
create/delete queues, register consumers, read/acknowledge messages, or publish
records.
- Cap connection, handshake and channel-RPC waits at 10 seconds each,
retaining smaller positive timeouts. Disable recovery for the temporary
connection and abort it during cleanup.
- Keep error messages free of raw connection strings and driver exception
chains.
- Update both connector documentation and the central supported-connectors
table in English and Chinese.
No changes to `DryRunConnectValidator`, the shared SPI, or later dry-run
layers.
### Does this PR introduce _any_ user-facing change?
Yes. Previously, `--dry-run connect` skipped RabbitMQ source connectivity.
It now performs the scoped checks above and fails on connection/authentication
errors instead of reporting the source as skipped. Configured output schemas
are reused without creating a source reader or submitting a job.
Normal source execution, existing option names/defaults and sink behavior
remain unchanged. No new dependencies or breaking changes are introduced.
Scope: Queues must already exist, including when `passive=false`; normal
execution may create queues, but preflight will not. Passive declarations can
refresh queue expiration and cannot inspect exclusive queues owned by another
connection. Success does not prove consumer permissions, declaration-property
compatibility, payload decoding or delivery guarantees. DNS resolution remains
governed by the JVM.
### How was this patch tested?
- The new factory-capability regression failed on the unchanged baseline.
- 57 connector unit tests, covering schema/runtime parity and adjacent
existing behavior, plus failure sanitization, interruption and resource cleanup.
- Five real-service integration tests in the existing `RabbitmqIT`,
including the CLI connect command, authentication failure and multiple queues,
URI precedence, missing-queue non-creation and unchanged message
contents/counts.
- Java 8 and Java 11 validation; focused commands below select only this
connector's unit and dry-run integration tests.
- Spotless and whitespace checks.
- Full repository `./mvnw -q -DskipTests verify` passed on Java 11. This
compiles/packages the repository; it is not a claim that all repository tests
ran.
```bash
./mvnw -B \
-pl seatunnel-e2e/seatunnel-connector-v2-e2e/connector-rabbitmq-e2e -am \
'-Dtest=*Rabbitmq*Test' -Dsurefire.failIfNoSpecifiedTests=false \
-DskipIT=false '-Dit.test=RabbitmqIT#testDryRun*' \
-DfailIfNoTests=false verify
```
The Java 11 run builds the complete selected dependency reactor. Java 8
rebuilds the connector and relevant dependencies and uses the current test
harness with the previously built unrelated engine starters. CLI coverage is
in-process argument parsing and command execution against live containers, not
execution of the packaged shell launcher. Live TLS and the full multi-engine
job matrix were not tested.
### Check list
- [x] No new JAR dependencies or license notices required.
- [x] English and Chinese connector and CLI capability documentation updated.
- [x] No incompatible change; `incompatible-changes.md` update is not
required.
- [x] Existing connector integration tests extended. Plugin mapping,
distribution, CI labels and plugin installation configuration are unchanged
because no connector is added.
--
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]