lhotari opened a new pull request, #25671: URL: https://github.com/apache/pulsar/pull/25671
### Motivation The JCTools 4.0.6 release is available, with various fixes since 4.0.5. Keeping the dependency current is generally desirable. Starting with 4.0.6, JCTools publishes a separate `jctools-core-jdk11` Maven artifact that adds proper Java 9 module support (a `module-info` descriptor) on top of `jctools-core`. Switching to this artifact is the recommended way to consume JCTools on JDK 9+. BookKeeper is also upgrading to JCTools 4.0.6 (apache/bookkeeper#4776), so aligning the version in Pulsar avoids classpath skew between the two projects and lets Pulsar pick up the `jctools-core-jdk11` enhancements at the same time. JCTools is used in Pulsar by `managed-ledger` and `pulsar-transaction-coordinator`. ### Modifications - Bump `jctools` version from `4.0.5` to `4.0.6` in `gradle/libs.versions.toml`. - Add a `jctools-core-jdk11` library entry to the version catalog alongside the existing `jctools-core`. Both share the same `version.ref = "jctools"` so they stay aligned. - Switch the `implementation` declarations in `managed-ledger` and `pulsar-transaction/coordinator` from `libs.jctools.core` to `libs.jctools.core.jdk11`. The `jdk11` variant transitively depends on `jctools-core`, so both jars end up bundled in the server distribution. - Update `distribution/server/src/assemble/LICENSE.bin.txt` to list both `org.jctools-jctools-core-4.0.6.jar` and `org.jctools-jctools-core-jdk11-4.0.6.jar`. Verified locally with: ``` ./gradlew assemble ./src/check-binary-license.sh distribution/server/build/distributions/apache-pulsar-*-bin.tar.gz ./src/check-binary-license.sh distribution/shell/build/distributions/apache-pulsar-*-bin.tar.gz ``` (All exit 0; the shell distribution does not bundle jctools.) ### Verifying this change - [x] Make sure that the change passes the CI checks. This change is a trivial rework / code cleanup without any test coverage. ### Does this pull request potentially affect one of the following parts: - [x] Dependencies (add or upgrade a dependency) - [ ] The public API - [ ] The schema - [ ] The default values of configurations - [ ] The threading model - [ ] The binary protocol - [ ] The REST endpoints - [ ] The admin CLI options - [ ] The metrics - [ ] Anything that affects deployment Dependency change details: - `org.jctools:jctools-core` 4.0.5 → 4.0.6 - New direct dependency on `org.jctools:jctools-core-jdk11` 4.0.6 (replacing the previous direct `jctools-core` declaration; `jctools-core` itself is still bundled transitively through `jctools-core-jdk11`). ### References - Release notes: https://github.com/JCTools/JCTools/releases/tag/v4.0.6 - Changelog: https://github.com/JCTools/JCTools/compare/v4.0.5...v4.0.6 - Related: apache/bookkeeper#4776 -- 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]
