dotCMS / dotCMS/core

[TASK] Migrate dotCLI module from Java 11 to Java 25

Open
#33,880 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dotCMS : Technical Debt stale Team : Scout
Dominant language
Java
Stars
970
Forks
486
Avg merge
3d 33m
Merged PRs (30d)
170

Description

Description

Migrate the dotCLI module from Java 11 to Java 25 to take advantage of the latest Java features, performance improvements, and long-term support. This migration will align the dotCLI with modern Java standards and enable the use of contemporary language features and runtime optimizations.

The dotCLI module currently targets Java 11, but upgrading to Java 25 will provide:

  • Enhanced performance and garbage collection improvements
  • Access to modern Java features (records, pattern matching, virtual threads, etc.)
  • Better memory management and reduced startup time
  • Alignment with current Java ecosystem trends
  • Long-term support and security updates

This task involves updating build configurations, dependencies, and ensuring compatibility across all dotCLI functionality.

Acceptance Criteria

  • Update Maven/Gradle build configuration to target Java 25
  • Verify all dependencies are compatible with Java 25
  • Update CI/CD pipeline to use Java 25 for dotCLI builds
  • Ensure all existing dotCLI functionality works correctly on Java 25
  • Update documentation to reflect Java 25 requirement
  • Test dotCLI installation and execution on Java 25 runtime
  • Verify cross-platform compatibility (macOS, Linux) with Java 25
  • Update Docker images and deployment configurations if applicable
  • Run comprehensive test suite to ensure no regressions
  • Update minimum system requirements documentation

Priority

Medium

Additional Context

Current State:

  • dotCLI module currently uses Java 11
  • Located in tools/dotcms-cli/ directory
  • Has its own build configuration separate from core dotCMS

Slack Thread

https://dotcms.slack.com/archives/C076ZF14U04/p1763652954029149

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in tools/dotcms-cli and inspect its separate Maven/Gradle build configuration, then trace CI/CD, dependency, Docker, and documentation references for the module. Verify the dotCLI build, installation, execution, and comprehensive tests on Java 25 across macOS and Linux. Done means all listed acceptance criteria are satisfied without regressions.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
build-system, ci-cd, cli, documentation
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.