Upgrade jctools to 4.0.6 (jctools-core-jdk11)#4776
Merged
merlimat merged 2 commits intoapache:masterfrom May 5, 2026
Merged
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 distribution, so the LICENSE files reference both. Release notes: https://github.com/JCTools/JCTools/releases/tag/v4.0.6 Changelog: JCTools/JCTools@v4.0.5...v4.0.6
Keep both jctools-core and jctools-core-jdk11 in <dependencyManagement> so their versions stay aligned. jctools-core-jdk11 transitively depends on jctools-core, and pinning both ensures any consumer that pulls in either artifact directly resolves to the same version.
11 tasks
merlimat
approved these changes
May 5, 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+.Pulsar is also upgrading to JCTools 4.0.6, so aligning the version in BookKeeper avoids classpath skew between the two projects and lets BookKeeper pick up the
jctools-core-jdk11enhancements at the same time.JCTools is used in BookKeeper to implement
BlockingMpscQueue.Changes
jctools.versionfrom4.0.5to4.0.6org.jctools:jctools-coretoorg.jctools:jctools-core-jdk11. Thejdk11variant transitively depends onjctools-core, so both jars end up bundled in the distributionjctools-coreandjctools-core-jdk11in<dependencyManagement>so their versions stay aligned via${jctools.version}LICENSE-server.bin.txt,LICENSE-all.bin.txt, andLICENSE-bkctl.bin.txtto list bothorg.jctools-jctools-core-4.0.6.jarandorg.jctools-jctools-core-jdk11-4.0.6.jar. Verified with./dev/check-all-licensesReferences