goutamadwant opened a new pull request, #12430:
URL: https://github.com/apache/seatunnel/pull/12430

   ### Purpose of this pull request
   
   Relates to #10681. Add Cassandra source support for the existing Layer 1 
`--dry-run connect` path through `SupportSourceDryRunValidation`.
   
   Prepare configured SELECT statements and infer projected schemas from 
prepared result metadata without executing the application query or 
constructing a source reader. Share the runtime schema conversion, bound driver 
operations, close resources, and avoid exposing CQL/server causes in connector 
failure messages.
   
   Depends on #12429 and remains draft until that prerequisite is merged. The 
comparison against `dev` currently includes the bootstrap commit; the 
dry-run-only change is commit `265e6675b76d4fd9f8c52305f8e68294d058406e`. No 
changes are made to `DryRunConnectValidator`, shared SPI interfaces, CLI level 
names or failure semantics. Redis support and later dry-run layers are outside 
this PR.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes. Cassandra source changes from unsupported/skipped connectivity 
validation to scoped connection and prepared-schema validation. Normal data-job 
execution is unchanged. English and Chinese connector and CLI capability 
documentation is updated.
   
   The dry-run accepts CQL beginning with SELECT, optionally preceded by 
whitespace. It rejects leading comments, non-SELECT statements, unbound 
parameters, empty result metadata and duplicate output identifiers. These 
restrictions apply to dry-run only.
   
   The driver may read system metadata and populate its prepared-statement 
cache. Success does not prove SELECT permissions, later query execution, 
consistency-level availability or sink compatibility. Timeouts are per 
operation, not a single total deadline. No new configuration option, default, 
dependency or public SPI is introduced.
   
   ### How was this patch tested?
   
   - Java 8 and Java 11: 32 connector unit tests and 8 live integration cases 
pass on the stacked branch, including the bootstrap prerequisite's tests.
   - Cassandra 4.1.1 coverage includes projected-schema parity, 
aliases/functions, empty results, multiple tables, missing tables/keyspaces, 
authenticated success and wrong-password failure.
   - Unit tests assert preparation without application-query execution. A live 
request observer first verifies an ordinary SELECT is observable, then sees no 
successful executed-CQL callbacks during dry-run; PREPARE is not exposed by 
that observer, so this is not a wire trace or a claim of zero system-metadata 
access.
   - Packaged CLI success/failure tests pass. The CLI engine uses its Java 8 
container; direct factory integration runs in the selected Java 8/11 harness.
   - Owned local no-response endpoint probes fail safely on both JDKs. 
Pre-interrupted calls, cleanup, bounded driver settings and sanitized failures 
are covered.
   - Root formatting and Java 11 `./mvnw -q -DskipTests verify` pass. Normal 
source/sink E2E evidence is recorded separately for the bootstrap prerequisite.
   
   Focused command, run with Java 8 and Java 11 selected through `JAVA_HOME`:
   
   ```sh
   ./mvnw -B -pl 
seatunnel-e2e/seatunnel-connector-v2-e2e/connector-cassandra-e2e -am \
     -Dtest=CassandraClientTest,CassandraFactoryTest,TypeConvertUtilTest \
     -Dsurefire.failIfNoSpecifiedTests=false -DskipIT=false \
     '-Dit.test=CassandraIT#testDryRun*+testUnavailableBootstrapContactPoint' \
     -DfailIfNoTests=false verify
   ```
   
   ### Check list
   
   - [x] No new binary dependency; license/notice additions are not required.
   - [x] English and Chinese documentation updated.
   - [x] No existing runtime configuration/API incompatibility or migration 
required; new dry-run restrictions are documented.
   - [x] Existing Cassandra E2E extended. No new connector registration, plugin 
mapping, distribution entry or CI scope registration is needed.
   


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