Skip to content

Migrate from Commons Lang to native Java Platform functionality - #33

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

Migrate from Commons Lang to native Java Platform functionality#33
timja wants to merge 1 commit into
jenkinsci:masterfrom
timja:commons-lang3

Conversation

@timja

@timja timja commented Aug 7, 2026

Copy link
Copy Markdown
Member

No need to use a third-party library when this functionality is available in the Java Platform.

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).

All usage is in Groovy sources. Six files:

  • StringUtils.isEmpty / isNotEmpty / isBlank / isNotBlank → explicit null-and-empty checks;
    StringUtils.defaultIfEmpty(x, "") → Groovy's ?: elvis operator.
  • ExceptionUtils.getStackTrace(e)Functions.printThrowable(e), Jenkins core's own renderer.
  • RandomStringUtils.random(10, true, true), which generates the Mac user account password, is now
    a local helper over SecureRandom. Commons Lang 2 backed that call with a plain java.util.Random,
    and I did not want to hand-write a weaker generator for a credential. Same length and alphabet as
    before; happy to drop it back if you would rather keep it identical.

Testing done

mvn -B -ntp clean verify passes locally on Java 11 / macOS. Java 21 does not work:
maven-license-plugin fails, on unmodified master too.
The ban-commons-lang-2 enforcer rule was left disabled because it needs parent POM
6.2116.v7501b_67dc517 or newer; bumping the parent from 4.x was out of scope here.

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
@parameter.

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.

1 participant