Skip to content

Migrate from Commons Lang 2 to Commons Lang 3 - #434

Open
timja-bot wants to merge 1 commit into
jenkinsci:masterfrom
timja-bot:commons-lang3
Open

Migrate from Commons Lang 2 to Commons Lang 3#434
timja-bot wants to merge 1 commit into
jenkinsci:masterfrom
timja-bot:commons-lang3

Conversation

@timja-bot

Copy link
Copy Markdown

Migrate from deprecated/EOL Commons Lang 2 to Commons Lang 3.

Part of the effort to remove Commons Lang 2 from Jenkins core — jenkinsci/jenkins#16404,
jenkinsci/jenkins#26105. Commons Lang 2 is EOL and carries an unfixed advisory
(GHSA-j288-q9x7-2f5v).

What's changed

  • Renamed the org.apache.commons.lang.* imports to org.apache.commons.lang3.* across 11 files
    and declared io.jenkins.plugins:commons-lang3-api.
  • ObjectUtils.equals (removed in Lang 3) becomes Objects.equals at the two call sites in
    ECSService.
  • Bumped the parent POM to 6.2211.v27f680c93c53 so the ban-commons-lang-2 enforcer rule is
    available, and enabled it.

⚠️ A pre-existing bug this surfaced

ECSService.registerTemplate does:

templateTagsMatchesExistingTags = Objects.equals(template.getTags(), tags);

template.getTags() is a List<ECSTaskTemplate.Tag> while tags is a List<com.amazonaws.services.ecs.model.Tag>.
Two lists of unrelated element types are never equal unless both are empty, so
templateTagsMatchesExistingTags is effectively always false whenever tags are configured — and
the task definition gets re-registered on every provision.

This is not new: ObjectUtils.equals(Object, Object) had the same behaviour, it just hid the type
mismatch from SpotBugs, which flags it as EC_UNRELATED_TYPES once the call becomes Objects.equals.
I have deliberately not changed the behaviour here — I added a @SuppressFBWarnings with that
justification so this PR stays a pure migration. Worth a follow-up to compare the tags properly.

Testing done

mvn -B -ntp clean verify passes locally on Java 21 / macOS.

The ban-commons-lang-2 enforcer rule is enabled in this PR, so the build fails if an
org.apache.commons.lang.* import comes back.

Submitter checklist

  • Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
  • Ensure that the pull request title represents the desired changelog entry
  • Please describe what you did
  • Link to relevant issues in GitHub or Jira
  • Link to relevant pull requests, esp. upstream and downstream changes
  • Ensure you have provided tests that demonstrate the feature works or the issue is fixed

🤖 This pull request was generated with AI assistance (Claude Code) as part of a bulk migration
across Jenkins plugins. If anything here looks wrong, please comment on this PR or contact @timja.

@timja-bot
timja-bot requested a review from a team as a code owner August 3, 2026 08:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants