vernedeng opened a new pull request, #123:
URL: https://github.com/apache/flink-connector-pulsar/pull/123
## Purpose of the change
Upgrade Flink dependency from 1.20.3 to 2.2.1, adapting the Pulsar connector
to Flink 2.x breaking API changes while preserving existing behavior and test
coverage.
## Brief change log
- Upgrade `flink.version` from `1.20.3` to `2.2.1`.
- Migrate Sink API: `TwoPhaseCommittingSink` → `Sink` + `SupportsCommitter`;
`PrecommittingSinkWriter` → `CommittingSinkWriter`; `InitContext` →
`WriterInitContext`.
- Migrate Source API: remove `FutureCompletingBlockingQueue` from
`PulsarSourceFetcherManager` and `PulsarSourceReader` (now managed internally
by framework).
- Migrate Serialization API: `ExecutionConfig` → `SerializerConfig` in
`TypeInformation.createSerializer()`, `PulsarSourceBuilder`, and
`PulsarTypeInformationWrapper`.
- Migrate `TypeSerializerSnapshot.resolveSchemaCompatibility()` to new
signature.
- Migrate `PulsarSinkContextImpl` to use `WriterInitContext.getTaskInfo()`
for subtask metadata.
- Add `TableDataTypeUtils` to replace removed
`DataTypeUtils.stripRowPrefix()` and `renameRowFields()`.
- Migrate test classes to use `legacy.SourceFunction` and
`legacy.SinkFunction` package paths.
- Migrate `PulsarWriterTest.MockInitContext` to implement
`WriterInitContext` with `TaskInfo` interface.
- Remove Scala (`scala-reflect`, `scala-library`) and Kryo dependencies (no
longer used in Flink 2.x).
- Exclude `flink-table-planner-loader` from `flink-table-test-utils` to fix
executor instantiation conflict.
- Use `${scala.binary.version}` property for `flink-table-planner` artifact
references.
- Skip `japicmp` check (no valid reference version for first Flink 2.x-based
release).
- Update CI matrix to test against Flink 2.2.1.
## Verifying this change
This change is already covered by existing tests:
- `PulsarSinkITCase` verifies sink functionality with all
`DeliveryGuarantee` modes (NONE, AT_LEAST_ONCE, EXACTLY_ONCE).
- `PulsarTableITCase` verifies Table API source/sink with multiple formats
(JSON, Avro, CSV).
- `PulsarTableOptionsTest` verifies table option validation logic.
- `PulsarWriterTest` verifies writer unit behavior with mocked contexts.
- `PulsarSourceReader` and `PulsarSourceFetcherManager` changes are covered
by existing source integration tests.
## Significant changes
- [x] Dependencies have been added or upgraded
- [x] Public API has been changed (Public API is any class annotated with
`@Public(Evolving)`)
- [x] Serializers have been changed
- [ ] New feature has been introduced
- If yes, how is this documented? (not applicable / docs / JavaDocs /
not documented)
--
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]