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

   ### Purpose of this pull request
   
   Closes #8816.
   
   This PR adds the **source** side of the Fluss connector. It lets SeaTunnel 
read from Fluss log tables, both as a bounded batch read and as an unbounded 
streaming read.
   
   Main additions:
   
   1. `FlussSource` / `FlussSourceFactory` — `SeaTunnelSource` implementation 
and factory wiring (`SupportColumnProjection`), reusing the existing 
`connector-fluss` module.
   2. `FlussSourceSplitEnumerator` — discovers table buckets, assigns them as 
splits, and supports snapshot/restore with stable split allocation across 
restarts.
   3. `FlussSourceSplitReader` / `FlussSourceReader` / `FlussRecordEmitter` — 
poll records per bucket, honor the checkpoint lock, and handle 
bounded/unbounded end conditions.
   4. `StartMode` + `FlussSourceOptions` — `earliest` / `latest` startup offset 
options.
   5. `FlussTypeConverter` — maps Fluss types to SeaTunnel `SeaTunnelDataType`.
   6. English & Chinese connector docs under 
`docs/{en,zh}/connectors/source/Fluss.md`, and registration in 
`plugin-mapping.properties` / `config/plugin_config`.
   
   ### Does this PR introduce _any_ user-facing change?
   
   Yes — a new `Fluss` source connector becomes available (previously only the 
Fluss sink existed). It only adds a new capability; no existing option key, 
default, or behavior is changed.
   
   ### How was this patch tested?
   
   Scoped to the `connector-fluss` / `connector-fluss-e2e` modules (the modules 
this PR changes):
   
   *   `./mvnw spotless:apply` pass.
   *   `./mvnw test -pl seatunnel-connectors-v2/connector-fluss` → 26/26, 0 
failures
       (FlussSourceSplitEnumeratorTest 8, FlussSourceFactoryTest 12, 
FlussSourceSplitReaderTest 6)
   *   Built the dist + connector for e2e:
       `./mvnw install -DskipTests -Dskip.spotless=true -pl 
seatunnel-dist,seatunnel-e2e/seatunnel-connector-v2-e2e/connector-fluss-e2e 
-am` → BUILD SUCCESS
   *   `./mvnw verify -pl 
seatunnel-e2e/seatunnel-connector-v2-e2e/connector-fluss-e2e 
-Dit.test=FlussSourceIT -DskipUT=true -DskipIT=false -DfailIfNoTests=false` → 
4/4, 0 failures
       (testFlussSource, testFlussSourceAllTypes, testFlussSourceStreaming, 
testFlussSourceStreamingLatest)
   
   ### Check list
   
   * [ ] 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/developer/new-license.md)
   * [x] If necessary, please update the documentation to describe the new 
feature. https://github.com/apache/seatunnel/tree/dev/docs
   * [ ] If necessary, please update `incompatible-changes.md` to describe the 
incompatibility caused by this PR.
   * [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)
 and add new connector information in it
     2. Update the pom file of 
[seatunnel-dist](https://github.com/apache/seatunnel/blob/dev/seatunnel-dist/pom.xml)
     3. Add ci label in 
[label-scope-conf](https://github.com/apache/seatunnel/blob/dev/.github/workflows/labeler/label-scope-conf.yml)
     4. Add e2e testcase in 
[seatunnel-e2e](https://github.com/apache/seatunnel/tree/dev/seatunnel-e2e/seatunnel-connector-v2-e2e/)
     5. Update connector 
[plugin_config](https://github.com/apache/seatunnel/blob/dev/config/plugin_config)


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