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]

Reply via email to