Jackie-Jiang opened a new pull request, #19787:
URL: https://github.com/apache/pinot/pull/19787

   ## Summary
   Upgrades Pulsar from 4.0.13 to 5.0.0 and adapts `pinot-pulsar` to the 5.0 
client. Supersedes #19762, which only bumps the version and fails to compile.
   
   Pulsar 5.0 changes that affect Pinot:
   - The shaded client jars relocate every implementation class under 
`org.apache.pulsar.shade`; only the API modules keep their public names.
   - `pulsar-client` no longer depends on `pulsar-client-admin-api`.
   - `slf4j-api` and `jspecify` are declared with `runtime` scope.
   
   Dependency changes:
   - `pinot-pulsar` depends on `pulsar-client-all` (client and admin) instead 
of `pulsar-client`. `getTopics()` uses `PulsarAdmin`, whose implementation was 
previously only a test dependency, so it could not work at runtime.
   - `slf4j-api` and `jspecify` are declared `provided` in `pinot-pulsar`. 
Pulsar's `runtime` scope otherwise wins over the `provided` scope inherited 
through `pinot-spi` and drops them from the compile classpath.
   - Import `opentelemetry-bom` 1.66.0. Pulsar 5.0 requests OpenTelemetry 1.66 
(including `opentelemetry-api-incubator` 1.66.0-alpha) while Google libraries 
request 1.62. Plugins bundle OpenTelemetry unrelocated, so mismatched versions 
can meet on the shared classpath.
   - Drop the `swagger-annotations` pin, which was kept for `pulsar-common`; it 
is now only reached through `swagger-jersey2-jaxrs` at the same version. Remove 
stale Pulsar mentions from dependency comments.
   
   Code changes, using only the public Pulsar API:
   - Add `PulsarMessageId`, a `MessageIdAdv` built from its components, for the 
next message id computed for every consumed message. Pulsar no longer exposes 
`MessageIdImpl` / `BatchMessageIdImpl`, and has no public factory for batched 
message ids. `toByteArray()` produces the same `MessageIdData` bytes as 
Pulsar's message ids, so persisted offsets are unchanged and readable across 
versions. Equality, hash code and ordering match Pulsar's message ids.
   - Create OAuth2 authentication through `AuthenticationFactory.create` with 
the built-in `AuthenticationOAuth2` plugin name, which Pulsar resolves when 
shaded.
   - Build partition names as `<topic>-partition-<index>` instead of using 
`TopicName`.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to