Skip to content

[improve][build] Upgrade Apache Commons libraries - #26348

Merged
nodece merged 1 commit into
apache:masterfrom
lhotari:lh-improve-apache-commons
Aug 18, 2026
Merged

[improve][build] Upgrade Apache Commons libraries#26348
nodece merged 1 commit into
apache:masterfrom
lhotari:lh-improve-apache-commons

Conversation

@lhotari

@lhotari lhotari commented Aug 17, 2026

Copy link
Copy Markdown
Member

Motivation

Three Apache Commons libraries in the version catalog have newer releases available. Keeping them
current is routine maintenance; grouping them into one PR keeps the review surface small since they
are all low-risk, same-major-line updates.

Modifications

gradle/libs.versions.toml:

library from to
commons-codec 1.22.0 1.22.1
commons-collections4 4.5.0 4.6.0
commons-logging 1.3.6 1.4.0

Plus the corresponding jar names in the server and shell distribution LICENSE.bin.txt files.

The remaining Apache Commons libraries in the catalog are already on their latest releases and are
left untouched: commons-lang3 3.20.0, commons-io 2.22.0, commons-compress 1.28.0,
commons-cli 1.11.0, commons-text 1.15.0, commons-math3 3.6.1, commons-beanutils 1.11.0 and
commons-configuration2 2.15.1.

Release notes reviewed for breaking changes:

  • commons-collections4 4.6.0 is a feature and maintenance release that keeps the Java 8 baseline.
    It contains no API removals. It newly deprecates the Bag family in favour of MultiSet, and
    removes the deprecation from Factory, Predicate, Transformer and Closure (those are now
    scheduled for deprecation in 5.0 instead). Deprecations only — nothing Pulsar uses is removed.
  • commons-logging 1.4.0 keeps the Java 8 baseline and is additive; it adds
    org.apache.commons.logging.jakarta.ServletContextCleaner.
  • commons-codec 1.22.1 is a patch release.

Class file versions were checked directly in the published jars: all three are Java 8 bytecode, so
there is no change to the Java baseline.

Verifying this change

  • Make sure that the change passes the CI checks.

This change is a trivial rework / code cleanup without any test coverage.

Verified locally with ./gradlew sanityCheck and ./gradlew checkBinaryLicense.

Does this pull request potentially affect one of the following parts:

  • 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

Upgrades the Apache Commons dependencies that have newer releases available:

- commons-codec       1.22.0  -> 1.22.1
- commons-collections4 4.5.0  -> 4.6.0
- commons-logging      1.3.6  -> 1.4.0

The remaining Commons libraries in the version catalog are already on their latest
releases and are left unchanged: commons-lang3 3.20.0, commons-io 2.22.0,
commons-compress 1.28.0, commons-cli 1.11.0, commons-text 1.15.0, commons-math3 3.6.1,
commons-beanutils 1.11.0 and commons-configuration2 2.15.1.

All three releases keep a Java 8 baseline. commons-collections4 4.6.0 is a feature and
maintenance release with no API removals: it newly deprecates the Bag family in favour
of MultiSet, and removes the deprecation from Factory, Predicate, Transformer and
Closure. commons-logging 1.4.0 is additive (adds a Jakarta servlet ServletContextCleaner).

Assisted-by: Claude Code (Opus 5)
@lhotari lhotari added the area/dependency Pull requests that update a dependency file label Aug 17, 2026
@lhotari lhotari added this to the 5.0.0-M2 milestone Aug 17, 2026
@nodece
nodece merged commit bc660a8 into apache:master Aug 18, 2026
52 of 55 checks passed
lhotari added a commit that referenced this pull request Aug 31, 2026
lhotari added a commit that referenced this pull request Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants