Skip to content

#1676: import extra sdks automatically into ide - #2320

Merged
hohwille merged 54 commits into
devonfw:mainfrom
JoelAdbu:feature/1676-Import-extra-SDKs-automatically-into-IDE-
Aug 21, 2026
Merged

#1676: import extra sdks automatically into ide #2320
hohwille merged 54 commits into
devonfw:mainfrom
JoelAdbu:feature/1676-Import-extra-SDKs-automatically-into-IDE-

Conversation

@JoelAdbu

@JoelAdbu JoelAdbu commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #1676

Implemented changes:

1. Register the IntelliJ template

  • Add the IntelliJ template for extra JDKs installations.
  • Keep the approach reusable for other IDEs, such as Eclipse and VS Code.

2. Read extra tool installations

  • Read extra tool installations from $IDE_HOME/settings/ide-extra-tools.json.
    For example:
{
  "java": {
    "client": {
      "version": "11.0.31_11",
	   "edition": "azul"
    },
    "process-engine": {
      "version": "21.*"
    }
  },
  "mvn": {
    "m4": {
      "version": "4.0.0-rc-5"
    }
  }
}
  • Process each configured extra SDKs installation.

3. Keep SDKs synchronized

4. Validate configuration and handle errors

  • Reject an extra-installation name that equals its tool name; for example, an extra JDKs installation must not be named java.
  • Skip missing or invalid SDK installations and write a warning to the log.

5. Added GraalVM reflection metadata to reflect-config.json

  • The new entries enable native-image to instantiate Intellij via IdeToolCommandlet-based lookup.

Testing instructions

1. Build the native executable

  • Run the following script to build the native image: ./build-local-dev.sh.
  • After the build completes, navigate to: IDEasy/cli/target.

2. Create a test project with custom settings

  • From IDEasy/cli/target, create a new test project using the modified settings from my test branch for ide-settings.
ideasy.exe create <test-import-sdks> https://github.com/vivu001/ide-settings.git#feature/1676-Test-import-extra-SDKs-automatically-into-IDE

3. Verify automatic SDK import in IntelliJ

  • Open a new terminal and initialize the workspace:
icd -p <test-import-sdks> -w
  • Launch IntelliJ
ide intellij
  • Expected result:
    All additional SDKs should be automatically imported into IntelliJ.
    This step validates that workspace configuration and IDE settings are correctly applied (as IDEasy manages IDE configuration via workspace templates).
image

4. Validate ide update behavior

4.1 Prepare test scenario

  • Manually remove all extra JDKs from IntelliJ.
  • Additionally, delete jdks from the filesystem:
$IDE_HOME/software/java 
$IDE_ROOT/_ide/software/default/java

4.2 Run update

ide update

4.3 Verify result

All previously removed SDKs are re-downloaded and reinstalled.
IntelliJ configuration is updated accordingly, as shown at the end of step 3.
The file $IDE_HOME/workspaces/main/.intellij/config/options/jdk.table.xml has been updated with the extra SDK entries.

Checklist for this PR

Make sure everything is checked before merging this PR. For further info please also see
our DoD.

  • When running mvn clean test locally all tests pass and build is successful
  • PR title is of the form #«issue-id»: «brief summary» (e.g. #921: fixed setup.bat). If no issue ID exists, title only.
  • PR top-level comment summarizes what has been done and contains link to addressed issue(s)
  • PR and issue(s) have suitable labels
  • Issue is set to In Progress and assigned to you or there is no issue (might happen for very small PRs)
  • You followed all coding conventions
  • You have added the issue implemented by your PR in CHANGELOG.adoc unless issue is labeled
    with internal
  • You have formulated clear instructions on how to test your contribution under "Testing instructions"

vivu001 and others added 30 commits June 23, 2026 15:12
- Load extra SDKs from ide-extra-tools.json and register supported ones in IntelliJ.
- The IntelliJ merge template is expected from the settings repository.
…utomatically-into-IDE-' into feature/1676-Import-extra-SDKs-automatically-into-IDE-
…med attribute placeholders in jdk-extra-java.xml
@JoelAdbu JoelAdbu changed the title Feature/1676 import extra sd ks automatically into ide #1676: import extra sdks automatically into ide Aug 12, 2026
@github-project-automation github-project-automation Bot moved this to 🆕 New in IDEasy board Aug 12, 2026
@JoelAdbu JoelAdbu self-assigned this Aug 12, 2026
@JoelAdbu JoelAdbu added enhancement New feature or request settings ide-settings repo and replated processes and features labels Aug 12, 2026
@coveralls

coveralls commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 32485106491

Coverage increased (+0.1%) to 73.677%

Details

  • Coverage increased (+0.1%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 49 coverage regressions across 6 files.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

49 previously-covered lines in 6 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/tools/ide/context/IdeContext.java 16 77.46%
com/devonfw/tools/ide/git/repository/RepositoryCommandlet.java 12 73.43%
com/devonfw/tools/ide/tool/ide/IdeToolCommandlet.java 9 88.32%
com/devonfw/tools/ide/commandlet/AbstractUpdateCommandlet.java 7 82.2%
com/devonfw/tools/ide/tool/intellij/Intellij.java 4 89.41%
com/devonfw/tools/ide/tool/extra/ExtraTools.java 1 90.48%

Coverage Stats

Coverage Status
Relevant Lines: 17840
Covered Lines: 13746
Line Coverage: 77.05%
Relevant Branches: 7909
Covered Branches: 5225
Branch Coverage: 66.06%
Branches in Coverage %: Yes
Coverage Strength: 3.28 hits per line

💛 - Coveralls

Comment thread cli/src/main/java/com/devonfw/tools/ide/tool/plugin/PluginBasedCommandlet.java Outdated
@JoelAdbu
JoelAdbu marked this pull request as ready for review August 12, 2026 11:09
@JoelAdbu JoelAdbu moved this from 🆕 New to 🏗 In progress in IDEasy board Aug 12, 2026
- review requests
Comment thread cli/src/main/java/com/devonfw/tools/ide/commandlet/AbstractUpdateCommandlet.java Outdated
- review requests
- removed configureworkspace loop in abstractUpdateCommandlet

@hohwille hohwille left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JoelAdbu thanks for taking over and bringing this to the finishing line. Great job 👍
For me everything looks perfect for merge but I have one last question because we should not use reflection to fiddle with out commandlets.

@hohwille hohwille added this to the release:2026.08.002 milestone Aug 21, 2026
@hohwille
hohwille merged commit e83c06b into devonfw:main Aug 21, 2026
3 checks passed
@github-project-automation github-project-automation Bot moved this from 👀 In review to ✅ Done in IDEasy board Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request settings ide-settings repo and replated processes and features

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

Import extra SDKs automatically into IDE

5 participants