lizhimins opened a new pull request, #157:
URL: https://github.com/apache/rocketmq-flink/pull/157

   ## What
   
   Migrate the connector to the **new Source/Sink API only**, staying on 
**Flink 1.20.3 / Java 11**, following the maintenance model of 
[apache/flink-connector-kafka](https://github.com/apache/flink-connector-kafka) 
(new API only, zero legacy, version differences isolated in branches). Tracking 
issue: #155.
   
   - Delete the legacy source/sink paths and their tests; the FLIP-27 `Source` 
and the sink2 `Sink` + `SupportsCommitter` become the only runtime paths. The 
SQL factory keeps accepting the existing DDL options but resolves them to the 
new implementations.
   - `TableSchema` / `SchemaValidator` -> `ResolvedSchema`; 
`Configuration.getXxx(ConfigOption)` / `setXxx` -> `get` / `set`.
   - `Sink.InitContext` and `TypeInformation.createSerializer(ExecutionConfig)` 
are still abstract in 1.20; implement the deprecated overloads as delegations. 
The 1.20 runtime calls the `WriterInitContext` / `SerializerConfig` overloads, 
so the main code path is already the 2.x one.
   
   ## Why
   
   Flink 2.x removed `SourceFunction`, `SinkFunction`, 
`TwoPhaseCommittingSink`, `TableSchema` and the `ConfigOption`-typed 
`Configuration` accessors. With legacy and new implementations shipped side by 
side, the connector cannot compile against 2.x and every fix lands twice (e.g. 
#141 / #148). Kafka and Pulsar both keep every branch on the new API only; this 
PR puts `main` on that shared basis first.
   
   ## Semantics
   
   Unchanged. At-least-once / exactly-once guarantees, offset management from 
Flink state, checkpoint-aligned transaction commits and the #154 async-send 
bounding / seek-retry behavior all stay as they are — this is an API migration, 
not a behavior change. The proxy-fronted EXACTLY_ONCE limitation documented in 
#152 still applies.
   
   ## Verification
   
   - `mvn clean install` green on JDK 17 targeting Java 11: **remoting 146 / 
grpc 80 unit tests**, checkstyle / spotless zero violations, both remoting and 
grpc SQL fat-jars produced.
   - The 2.x variant of this codebase was verified against **Flink 2.2.1** with 
the same tests passing; it differs from this PR by a single small commit (pom 
versions, dropping the deprecated-overload bridges above, one test package 
path, CI matrix).
   
   ## Follow-up (proposed in #155)
   
   This commit is the **branch point for the 1.x maintenance line**: after it 
merges, cut the maintenance branch here, then a follow-up single-commit PR 
switches `main` to Flink 2.2.1 / Java 17 (flip `flink.version`, drop the 
1.20-only bridges, CI matrix to JDK 17). Fixes then cherry-pick between the two 
lines, as Kafka does.


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