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]

Reply via email to