[improve][misc] Upgrade jctools to 4.0.6 (jctools-core-jdk11)#25671
Merged
merlimat merged 1 commit intoapache:masterfrom May 5, 2026
Merged
[improve][misc] Upgrade jctools to 4.0.6 (jctools-core-jdk11)#25671merlimat merged 1 commit intoapache:masterfrom
merlimat merged 1 commit intoapache:masterfrom
Conversation
Switch from org.jctools:jctools-core to org.jctools:jctools-core-jdk11 and bump version 4.0.5 -> 4.0.6. The jctools-core-jdk11 artifact is a drop-in replacement that adds proper Java 9 module support (module-info) on top of jctools-core, which is brought in transitively. Both jars are bundled in the server distribution, so its LICENSE.bin.txt references both. Both jctools-core and jctools-core-jdk11 are kept in the version catalog sharing the same version reference, so any consumer that pulls in either artifact directly resolves to the same version. Release notes: https://github.com/JCTools/JCTools/releases/tag/v4.0.6 Changelog: JCTools/JCTools@v4.0.5...v4.0.6
merlimat
approved these changes
May 5, 2026
poorbarcode
pushed a commit
to poorbarcode/pulsar
that referenced
this pull request
May 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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-jdk11Maven artifact that adds proper Java 9 module support (amodule-infodescriptor) on top ofjctools-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-jdk11enhancements at the same time.JCTools is used in Pulsar by
managed-ledgerandpulsar-transaction-coordinator.Modifications
jctoolsversion from4.0.5to4.0.6ingradle/libs.versions.toml.jctools-core-jdk11library entry to the version catalog alongside the existingjctools-core. Both share the sameversion.ref = "jctools"so they stay aligned.implementationdeclarations inmanaged-ledgerandpulsar-transaction/coordinatorfromlibs.jctools.coretolibs.jctools.core.jdk11. Thejdk11variant transitively depends onjctools-core, so both jars end up bundled in the server distribution.distribution/server/src/assemble/LICENSE.bin.txtto list bothorg.jctools-jctools-core-4.0.6.jarandorg.jctools-jctools-core-jdk11-4.0.6.jar.Verified locally with:
(All exit 0; the shell distribution does not bundle jctools.)
Verifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:
Dependency change details:
org.jctools:jctools-core4.0.5 → 4.0.6org.jctools:jctools-core-jdk114.0.6 (replacing the previous directjctools-coredeclaration;jctools-coreitself is still bundled transitively throughjctools-core-jdk11).References