Skip to content

#1928: Added Upgrade IDEasy and Update functionalities to the GUI with pro active notifications - #2396

Open
JoelAdbu wants to merge 83 commits into
devonfw:mainfrom
JoelAdbu:feature/1928-show-pro-active-notifications-of-updates-in-gui
Open

#1928: Added Upgrade IDEasy and Update functionalities to the GUI with pro active notifications#2396
JoelAdbu wants to merge 83 commits into
devonfw:mainfrom
JoelAdbu:feature/1928-show-pro-active-notifications-of-updates-in-gui

Conversation

@JoelAdbu

@JoelAdbu JoelAdbu commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #1928

This PR continues the work started in: #2027

Implemented Changes

  1. Created UpgradeController

    • On startup, IDEasy checks whether the installed version is outdated.
    • If so, an indicator is shown near the Logo that opens a dialog and allows running the upgrade command.
  2. Created UpdateController

    • After selecting both a project and a workspace, an update check is performed.
    • If an update is available, an indicator is shown near the project ComboBox, opening a dialog that allows running the update command.
  3. Controller / architecture adjustments

    • Refactored MainController to allow dependency injection.
    • Reduced singleton-based wiring to improve flexibility and testability.
  4. Localization

    • Aligned the implementation with #1936.
    • Added/updated English and German texts in messages.properties and messages_de.properties.
  5. Tests

    • Added UpgradeUpdateFlowTest as end-to-end GUI integration tests for both update and upgrade flows using the new indicator + dialog pattern.
  6. UI refactoring

  7. Tray notification service

    • Added TrayNotificationService to avoid duplicated tray-indicator logic.
    • Used by both UpgradeController and UpdateController to show the clickable tray indicator when an upgrade or update is available.

Testing Instructions

1. GUI testing with overridden configuration

A test configuration class was added: TestGuiConfiguration

This allows overriding the current IDEasy version and update availability via environment variables when launching the GUI.

Example:

IDE_VERSION=2026.02.001;IDE_UPDATE_AVAILABLE=true

Usage:

TestGuiConfiguration.applyConfigOverrides();

Note: This call in App is only for testing and should be removed before merge.

Upgrade flow

  1. Start the application.
  2. Click the indicator at the top-right of the IDEasy logo.
  3. Expected result:
    • A dialog opens.
    • The dialog shows the current and latest IDEasy versions.
    • The Upgrade button executes the upgrade command.

Update flow

  1. Select a project.
  2. Select a workspace.
  3. Click the indicator at the top-right of the project ComboBox.
  4. Expected result:
    • A dialog opens.
    • The dialog shows an Update Available status.
    • The Update button executes the update command.

2. Run automated tests

Run the following test class:

UpgradeUpdateFlowTest

This validates both update and upgrade flows

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"

laim2003 added 30 commits March 27, 2026 17:52
- Added logging to IdeGuiStateManager.
- Added functionality, that selecting a different project now switches the IdeContext to the new project.
- Added logging to IdeGuiStateManager.
- Added functionality, that selecting a different project now switches the IdeContext to the new project.
- Added functionality, that selecting a different project now switches the IdeContext to the new project.
- added DI for IdeGuiStateManager.switchContext
…reading the list of workspaces/projects instead of reading those from the UI
…nager, when switchContext(Path rootDirectory, ...) is called.
…tateManager is now set when calling getInstance(), allowing us to provide a getInstance() method with a DI parameter
KarimALotfy and others added 15 commits July 10, 2026 13:48
…/1928-show-pro-active-notifications-of-updates-in-gui
…n-gui' of https://github.com/KarimALotfy/IDEasy into feature/1928-show-pro-active-notifications-of-updates-in-gui
…n-gui' of https://github.com/KarimALotfy/IDEasy into feature/1928-show-pro-active-notifications-of-updates-in-gui
…/1928-show-pro-active-notifications-of-updates-in-gui
- resolving merge conflicts
- spotless...
@JoelAdbu JoelAdbu changed the title #1928: Added Upgrade IDEasy and Update functionalities to the GUI with pro active notifications- #2027 #1928: Added Upgrade IDEasy and Update functionalities to the GUI with pro active notifications Sep 1, 2026
@coveralls

coveralls commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 33508642804

Coverage decreased (-0.3%) to 73.29%

Details

  • Coverage decreased (-0.3%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 81 coverage regressions across 4 files.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

81 previously-covered lines in 4 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/ide/gui/MainController.java 52 65.95%
com/devonfw/ide/gui/App.java 24 0.0%
com/devonfw/ide/gui/context/GuiStateManager.java 4 86.11%
com/devonfw/tools/ide/version/VersionSegment.java 1 91.86%

Coverage Stats

Coverage Status
Relevant Lines: 18781
Covered Lines: 14396
Line Coverage: 76.65%
Relevant Branches: 8284
Covered Branches: 5440
Branch Coverage: 65.67%
Branches in Coverage %: Yes
Coverage Strength: 3.26 hits per line

💛 - Coveralls

@JoelAdbu JoelAdbu added GUI Graphical User Interface of IDEasy (aka dashboard) build with JavaFx enhancement New feature or request update related to updating software or the entire ide upgrade upgrade of IDEasy to latest version labels Sep 1, 2026
- for testing
@JoelAdbu JoelAdbu moved this from 🆕 New to Team Review in IDEasy board Sep 1, 2026
@JoelAdbu
JoelAdbu marked this pull request as ready for review September 1, 2026 12:40
@laim2003 laim2003 self-assigned this Sep 1, 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 GUI Graphical User Interface of IDEasy (aka dashboard) build with JavaFx update related to updating software or the entire ide upgrade upgrade of IDEasy to latest version

Projects

Status: Team Review

Development

Successfully merging this pull request may close these issues.

Show user pro-active notifications of updates in the GUI

4 participants