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]
