From 551f6f1a0837c504c7ac51d745bcc1f739354714 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Thu, 19 Mar 2026 13:10:33 +0100 Subject: [PATCH 01/26] #1724: initial Gui commandlet commit --- .../tools/ide/commandlet/GuiCommandlet.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java new file mode 100644 index 000000000..353054837 --- /dev/null +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java @@ -0,0 +1,28 @@ +package com.devonfw.tools.ide.commandlet; + +import java.util.Set; + +import com.devonfw.tools.ide.common.Tag; +import com.devonfw.tools.ide.context.IdeContext; +import com.devonfw.tools.ide.tool.mvn.MvnArtifact; +import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; + +/** + * Commandlet to launch the IDEasy GUI. + */ +public class GuiCommandlet extends MvnBasedLocalToolCommandlet { + + /** + * @param context the {@link IdeContext}. + * @param tool the {@link #getName() tool name}. + * @param artifact the {@link MvnArtifact}. + * @param tags the {@link #getTags() tags}. + */ + public GuiCommandlet(IdeContext context, String tool, MvnArtifact artifact, Set tags) { + + super(context, tool, artifact, tags); + addKeyword("gui"); + } + + +} From bbe114b86734ca8d7c76b3721cf8c87a4d43639c Mon Sep 17 00:00:00 2001 From: Lukas Faber Date: Fri, 20 Mar 2026 10:59:03 +0100 Subject: [PATCH 02/26] #1724: added Gui command and Tags/Hints --- .../ide/commandlet/CommandletManagerImpl.java | 2 +- .../tools/ide/commandlet/GuiCommandlet.java | 28 ----------- .../com/devonfw/tools/ide/common/Tag.java | 2 + .../com/devonfw/tools/ide/tool/gui/Gui.java | 50 +++++++++++++++++++ cli/src/main/resources/nls/Help.properties | 2 + cli/src/main/resources/nls/Help_de.properties | 2 + 6 files changed, 57 insertions(+), 29 deletions(-) delete mode 100644 cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java create mode 100644 cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java index c44f5b740..59bda8001 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java @@ -30,6 +30,7 @@ import com.devonfw.tools.ide.tool.go.Go; import com.devonfw.tools.ide.tool.graalvm.GraalVm; import com.devonfw.tools.ide.tool.gradle.Gradle; +import com.devonfw.tools.ide.tool.gui.Gui; import com.devonfw.tools.ide.tool.helm.Helm; import com.devonfw.tools.ide.tool.intellij.Intellij; import com.devonfw.tools.ide.tool.jasypt.Jasypt; @@ -146,7 +147,6 @@ public CommandletManagerImpl(IdeContext context) { add(new Yarn(context)); add(new Corepack(context)); add(new Pip(context)); - add(new Go(context)); } /** diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java deleted file mode 100644 index 353054837..000000000 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/GuiCommandlet.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.devonfw.tools.ide.commandlet; - -import java.util.Set; - -import com.devonfw.tools.ide.common.Tag; -import com.devonfw.tools.ide.context.IdeContext; -import com.devonfw.tools.ide.tool.mvn.MvnArtifact; -import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; - -/** - * Commandlet to launch the IDEasy GUI. - */ -public class GuiCommandlet extends MvnBasedLocalToolCommandlet { - - /** - * @param context the {@link IdeContext}. - * @param tool the {@link #getName() tool name}. - * @param artifact the {@link MvnArtifact}. - * @param tags the {@link #getTags() tags}. - */ - public GuiCommandlet(IdeContext context, String tool, MvnArtifact artifact, Set tags) { - - super(context, tool, artifact, tags); - addKeyword("gui"); - } - - -} diff --git a/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java b/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java index 6ae92c6e0..462868bb8 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java +++ b/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java @@ -329,6 +329,8 @@ public final class Tag { /** {@link #Tag} for encryption. */ public static final Tag ENCRYPTION = create("encryption", CRYPTO); + public static final Tag GUI = create("gui", MISC); + private final String id; private final Tag parent; diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java new file mode 100644 index 000000000..dac265ed6 --- /dev/null +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -0,0 +1,50 @@ +package com.devonfw.tools.ide.tool.gui; + +import java.util.List; +import java.util.Set; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.devonfw.tools.ide.common.Tag; +import com.devonfw.tools.ide.context.IdeContext; +import com.devonfw.tools.ide.process.ProcessContext; +import com.devonfw.tools.ide.process.ProcessMode; +import com.devonfw.tools.ide.tool.mvn.Mvn; +import com.devonfw.tools.ide.tool.mvn.MvnArtifact; +import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; + +/** + * {@link MvnBasedLocalToolCommandlet} to launch the IDEasy GUI. + */ +public class Gui extends MvnBasedLocalToolCommandlet { + + private static final Logger LOG = LoggerFactory.getLogger(Gui.class); + + private final ProcessContext pc = this.context.newProcess(); + + private final Mvn mvn = this.context.getCommandletManager().getCommandlet(Mvn.class); + private static final MvnArtifact ARTIFACT = MvnArtifact.ofIdeasy("ide-gui", "*!", "tar.gz", "${os}-${arch}"); + + /** + * @param context the {@link IdeContext}. + */ + public Gui(IdeContext context) { + + super(context, "gui", ARTIFACT, Set.of(Tag.GUI)); + } + + @Override + protected void doRun() { + install(true); + + LOG.debug("Starting GUI via commandlet"); + + List args = List.of( + "exec:java", + "-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher" + ); + + mvn.runTool(pc, ProcessMode.DEFAULT, args); + } +} diff --git a/cli/src/main/resources/nls/Help.properties b/cli/src/main/resources/nls/Help.properties index 758709d61..9f8e54210 100644 --- a/cli/src/main/resources/nls/Help.properties +++ b/cli/src/main/resources/nls/Help.properties @@ -41,6 +41,8 @@ cmd.graalvm=Tool commandlet for GraalVm (Java with native-image). cmd.graalvm.detail=GraalVM is a high-performance runtime that supports multiple languages and execution modes. Detailed documentation can be found at https://www.graalvm.org/docs/ cmd.gradle=Tool commandlet for Gradle (Build-Tool). cmd.gradle.detail=Gradle is a build automation tool for Java, Kotlin, and other JVM-based languages. Detailed documentation can be found at https://docs.gradle.org/ +cmd.gui=Tool commandlet for running the IDEasy GUI +cmd.gui.detail=This command will run the GUI version of IDEasy, opening up a more comprehensible project dashboard and allowing for easier management of your local IDEasy instance. cmd.helm=Tool commandlet for Helm (Kubernetes Package Manager). cmd.helm.detail=Helm is a package manager for Kubernetes that simplifies deploying and managing applications. Detailed documentation can be found at https://helm.sh/docs/ cmd.help=Prints this help. diff --git a/cli/src/main/resources/nls/Help_de.properties b/cli/src/main/resources/nls/Help_de.properties index e9e8fb846..a07fe8e12 100644 --- a/cli/src/main/resources/nls/Help_de.properties +++ b/cli/src/main/resources/nls/Help_de.properties @@ -41,6 +41,8 @@ cmd.graalvm=Werkzeug Kommando für GraalVm. cmd.graalvm.detail=GraalVM ist eine leistungsstarke Laufzeitumgebung, die mehrere Sprachen und Ausführungsmodi unterstützt. Detaillierte Dokumentation ist zu finden unter https://www.graalvm.org/docs/ cmd.gradle=Werkzeug Kommando für Gradle (Build-Tool). cmd.gradle.detail=Gradle ist ein Build-Automatisierungstool für Java, Kotlin und andere JVM-basierte Sprachen. Detaillierte Dokumentation ist zu finden unter https://docs.gradle.org/ +cmd.gui=Werkzeug Kommando, um die GUI von IDEasy zu öffnen. +cmd.gui.detail=Dieser Befehl startet die GUI-Version von IDEasy, öffnet ein übersichtlicheres Projekt-Dashboard und erleichtert die Verwaltung Ihrer lokalen IDEasy-Instanz. cmd.helm=Werkzeug Kommando für Helm (Kubernetes Package Manager). cmd.helm.detail=Helm ist ein Paketmanager für Kubernetes, der das Bereitstellen und Verwalten von Anwendungen vereinfacht. Detaillierte Dokumentation ist zu finden unter https://helm.sh/docs/ cmd.help=Zeigt diese Hilfe an. From a109b88655d22891ca3a791b0de00a9e612b076f Mon Sep 17 00:00:00 2001 From: laim2003 Date: Mon, 23 Mar 2026 16:48:31 +0100 Subject: [PATCH 03/26] #1724: -implemented basic java -jar execution --- .../com/devonfw/tools/ide/tool/gui/Gui.java | 31 ++++++++++++++----- gui/pom.xml | 19 ++++++++++++ 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index dac265ed6..f8a5e8e01 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -1,5 +1,6 @@ package com.devonfw.tools.ide.tool.gui; +import java.nio.file.Path; import java.util.List; import java.util.Set; @@ -8,11 +9,12 @@ import com.devonfw.tools.ide.common.Tag; import com.devonfw.tools.ide.context.IdeContext; -import com.devonfw.tools.ide.process.ProcessContext; import com.devonfw.tools.ide.process.ProcessMode; -import com.devonfw.tools.ide.tool.mvn.Mvn; +import com.devonfw.tools.ide.tool.ToolInstallRequest; +import com.devonfw.tools.ide.tool.java.Java; import com.devonfw.tools.ide.tool.mvn.MvnArtifact; import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; +import com.devonfw.tools.ide.version.VersionRange; /** * {@link MvnBasedLocalToolCommandlet} to launch the IDEasy GUI. @@ -21,10 +23,9 @@ public class Gui extends MvnBasedLocalToolCommandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - private final ProcessContext pc = this.context.newProcess(); + private static final MvnArtifact ARTIFACT = MvnArtifact.ofIdeasy("ide-gui", "*!", "jar", null); - private final Mvn mvn = this.context.getCommandletManager().getCommandlet(Mvn.class); - private static final MvnArtifact ARTIFACT = MvnArtifact.ofIdeasy("ide-gui", "*!", "tar.gz", "${os}-${arch}"); + private Java java; /** * @param context the {@link IdeContext}. @@ -34,17 +35,31 @@ public Gui(IdeContext context) { super(context, "gui", ARTIFACT, Set.of(Tag.GUI)); } + @Override + protected void installToolDependencies(ToolInstallRequest request) { + + super.installToolDependencies(request); + + LOG.debug("Installing ide-gui dependencies: {}", request.getToolPath()); + + java = this.context.getCommandletManager().getCommandlet(Java.class); + java.installAsDependency(VersionRange.of("25"), request); + } + @Override protected void doRun() { + install(true); LOG.debug("Starting GUI via commandlet"); + Path jarPath = getToolPath().resolve(ARTIFACT.getFilename()); + List args = List.of( - "exec:java", - "-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher" + "-jar", + jarPath.toAbsolutePath().toString() ); - mvn.runTool(pc, ProcessMode.DEFAULT, args); + java.runTool(context.newProcess(), ProcessMode.DEFAULT, args); } } diff --git a/gui/pom.xml b/gui/pom.xml index c581b1dd0..57d9ed547 100644 --- a/gui/pom.xml +++ b/gui/pom.xml @@ -62,6 +62,25 @@ + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + com.devonfw.ide.gui.AppLauncher + + + + + + org.openjfx javafx-maven-plugin From 6d291af661d5b96fa7bb59d1e7a470a78d34846f Mon Sep 17 00:00:00 2001 From: Lukas Faber Date: Mon, 23 Mar 2026 20:51:04 +0100 Subject: [PATCH 04/26] #1724: disabled extraction of jar --- .../java/com/devonfw/tools/ide/tool/gui/Gui.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index f8a5e8e01..7c1567c5f 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -23,7 +23,7 @@ public class Gui extends MvnBasedLocalToolCommandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - private static final MvnArtifact ARTIFACT = MvnArtifact.ofIdeasy("ide-gui", "*!", "jar", null); + private static final MvnArtifact ARTIFACT = new MvnArtifact("ide-gui", "2026.04.001", "jar", ""); private Java java; @@ -39,13 +39,20 @@ public Gui(IdeContext context) { protected void installToolDependencies(ToolInstallRequest request) { super.installToolDependencies(request); - - LOG.debug("Installing ide-gui dependencies: {}", request.getToolPath()); + LOG.info(ARTIFACT.getDownloadUrl()); + LOG.info("Installing ide-gui dependencies: {}", request.getRequested().getVersion().toString()); java = this.context.getCommandletManager().getCommandlet(Java.class); java.installAsDependency(VersionRange.of("25"), request); } + @Override + protected boolean isExtract() { + + //return false to avoid extracting the downloaded GUI jar (as we will run the jar in doRun()) + return false; + } + @Override protected void doRun() { From b6f79cf18c9e7d2522b0499afebd2ae2bf3b19aa Mon Sep 17 00:00:00 2001 From: laim2003 Date: Thu, 26 Mar 2026 19:52:54 +0100 Subject: [PATCH 05/26] - #1724: Switched Gui.java to use LocalToolCommandlet - Implemented gui-launcher module to enable command line execution of GUI --- cli/pom.xml | 25 ++++++- .../com/devonfw/tools/ide/tool/gui/Gui.java | 48 +++++-------- gui-launcher/pom.xml | 69 +++++++++++++++++++ pom.xml | 2 + 4 files changed, 112 insertions(+), 32 deletions(-) create mode 100644 gui-launcher/pom.xml diff --git a/cli/pom.xml b/cli/pom.xml index 9fe7cd2bb..cc3ba074d 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -206,6 +206,30 @@ + + org.apache.maven.plugins + maven-antrun-plugin + 3.1.0 + + + copy-gui-pom + prepare-package + + run + + + + + + + + + + + @@ -303,5 +327,4 @@ - diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 7c1567c5f..0fd93f258 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -1,72 +1,58 @@ package com.devonfw.tools.ide.tool.gui; -import java.nio.file.Path; import java.util.List; -import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.devonfw.tools.ide.common.Tag; +import com.devonfw.tools.ide.commandlet.Commandlet; import com.devonfw.tools.ide.context.IdeContext; import com.devonfw.tools.ide.process.ProcessMode; -import com.devonfw.tools.ide.tool.ToolInstallRequest; -import com.devonfw.tools.ide.tool.java.Java; -import com.devonfw.tools.ide.tool.mvn.MvnArtifact; +import com.devonfw.tools.ide.tool.mvn.Mvn; import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; -import com.devonfw.tools.ide.version.VersionRange; +import com.devonfw.tools.ide.variable.IdeVariables; /** * {@link MvnBasedLocalToolCommandlet} to launch the IDEasy GUI. */ -public class Gui extends MvnBasedLocalToolCommandlet { +public class Gui extends Commandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - private static final MvnArtifact ARTIFACT = new MvnArtifact("ide-gui", "2026.04.001", "jar", ""); - - private Java java; + //TODO: implement constant in sync with maven property gui.relative_pom_path + private static final String POM_PATH = "gui-execution"; /** * @param context the {@link IdeContext}. */ public Gui(IdeContext context) { - super(context, "gui", ARTIFACT, Set.of(Tag.GUI)); + super(context); + addKeyword("gui"); } - @Override - protected void installToolDependencies(ToolInstallRequest request) { - - super.installToolDependencies(request); - LOG.info(ARTIFACT.getDownloadUrl()); - LOG.info("Installing ide-gui dependencies: {}", request.getRequested().getVersion().toString()); - - java = this.context.getCommandletManager().getCommandlet(Java.class); - java.installAsDependency(VersionRange.of("25"), request); - } @Override - protected boolean isExtract() { + public String getName() { - //return false to avoid extracting the downloaded GUI jar (as we will run the jar in doRun()) - return false; + return "gui"; } + @Override protected void doRun() { - install(true); - LOG.debug("Starting GUI via commandlet"); - Path jarPath = getToolPath().resolve(ARTIFACT.getFilename()); + Mvn mvn = context.getCommandletManager().getCommandlet(Mvn.class); List args = List.of( - "-jar", - jarPath.toAbsolutePath().toString() + "-f", + IdeVariables.IDE_ROOT.get(context).toString() + "/_ide/installation/" + POM_PATH + "/pom.xml", + "exec:java", + "-Dexec.mainClass=com.devonfw.tools.ide.gui.AppLauncher" ); - java.runTool(context.newProcess(), ProcessMode.DEFAULT, args); + mvn.runTool(context.newProcess(), ProcessMode.DEFAULT, args); } } diff --git a/gui-launcher/pom.xml b/gui-launcher/pom.xml new file mode 100644 index 000000000..c3d0cd147 --- /dev/null +++ b/gui-launcher/pom.xml @@ -0,0 +1,69 @@ + + + 4.0.0 + + com.devonfw.tools.IDEasy.dev + ide + dev-SNAPSHOT + + com.devonfw.tools.IDEasy + ide-gui-launcher + ${revision} + pom + Launcher for IDEasy GUI + + + + com.devonfw.tools.IDEasy + ide-gui + ${revision} + jar + + + + + 25 + 25 + UTF-8 + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.1.0 + + com.devonfw.ide.gui.AppLauncher + + + + maven-resources-plugin + 3.3.1 + + + copy-gui-launcher-flattened-pom + prepare-package + + copy-resources + + + ${project.build.directory}/package/gui + + + ${project.basedir} + + .flattened-pom.xml + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index d4651d71a..d7e6450fe 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,7 @@ 3.7.1 3.6.1 24.2.1 + gui-execution @@ -174,6 +175,7 @@ documentation cli gui + gui-launcher url-updater security From 3d2fe9f23279203307854233052a594c8a42dce1 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 12:05:37 +0100 Subject: [PATCH 06/26] - #1724: Switched gui maven configuration from maven-shade (fat jar) to maven-jar-plugin (slim jar) - Corrected erroneous classPath in Gui commandlet --- .../java/com/devonfw/tools/ide/tool/gui/Gui.java | 2 +- gui/pom.xml | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 0fd93f258..4e50a5f89 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -50,7 +50,7 @@ protected void doRun() { "-f", IdeVariables.IDE_ROOT.get(context).toString() + "/_ide/installation/" + POM_PATH + "/pom.xml", "exec:java", - "-Dexec.mainClass=com.devonfw.tools.ide.gui.AppLauncher" + "-Dexec.mainClass=com.devonfw.tools.gui.AppLauncher" ); mvn.runTool(context.newProcess(), ProcessMode.DEFAULT, args); diff --git a/gui/pom.xml b/gui/pom.xml index 57d9ed547..31eb2e6ba 100644 --- a/gui/pom.xml +++ b/gui/pom.xml @@ -64,19 +64,20 @@ org.apache.maven.plugins - maven-shade-plugin + maven-jar-plugin package - shade + jar - - + + com.devonfw.ide.gui.AppLauncher - - + true + + From 4af27c0822cc1b638684740e3c3f47ea51e8872d Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 14:42:45 +0100 Subject: [PATCH 07/26] #1724: minor adjustments in CommandletManagerImpl.java to accomodate new GUI commandlet --- .../com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java | 2 +- cli/src/main/java/com/devonfw/tools/ide/common/Tag.java | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java index 59bda8001..329b4054b 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java @@ -27,7 +27,6 @@ import com.devonfw.tools.ide.tool.eclipse.Eclipse; import com.devonfw.tools.ide.tool.gcviewer.GcViewer; import com.devonfw.tools.ide.tool.gh.Gh; -import com.devonfw.tools.ide.tool.go.Go; import com.devonfw.tools.ide.tool.graalvm.GraalVm; import com.devonfw.tools.ide.tool.gradle.Gradle; import com.devonfw.tools.ide.tool.gui.Gui; @@ -147,6 +146,7 @@ public CommandletManagerImpl(IdeContext context) { add(new Yarn(context)); add(new Corepack(context)); add(new Pip(context)); + add(new Gui(context)); } /** diff --git a/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java b/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java index 462868bb8..6ae92c6e0 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java +++ b/cli/src/main/java/com/devonfw/tools/ide/common/Tag.java @@ -329,8 +329,6 @@ public final class Tag { /** {@link #Tag} for encryption. */ public static final Tag ENCRYPTION = create("encryption", CRYPTO); - public static final Tag GUI = create("gui", MISC); - private final String id; private final Tag parent; From 87ebd01eeee117c977f4eb1333df8b6e64f6112d Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 14:45:08 +0100 Subject: [PATCH 08/26] #1724: fixed wrong mainClass definition --- cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 4e50a5f89..c3f959a98 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -50,7 +50,7 @@ protected void doRun() { "-f", IdeVariables.IDE_ROOT.get(context).toString() + "/_ide/installation/" + POM_PATH + "/pom.xml", "exec:java", - "-Dexec.mainClass=com.devonfw.tools.gui.AppLauncher" + "-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher" ); mvn.runTool(context.newProcess(), ProcessMode.DEFAULT, args); From 87495569d2eaae183a6b8ad963ee087f87fff21f Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 14:46:45 +0100 Subject: [PATCH 09/26] #1724: changelog updated --- CHANGELOG.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 5be38ed93..178468387 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -7,7 +7,8 @@ This file documents all notable changes to https://github.com/devonfw/IDEasy[IDE Release with new features and bugfixes: * https://github.com/devonfw/IDEasy/issues/1702[#1702]: UI Buttons do not scale properly with window resize -* https://github.com/devonfw/IDEasy/issues/1751[#1751]: Add go-lang CLI Commandlet. +* https://github.com/devonfw/IDEasy/issues/1751[#1751]: Add go-lang CLI commandlet. +* https://github.com/devonfw/IDEasy/issues/1724[#1724]: add gui CLI commandlet. * https://github.com/devonfw/IDEasy/issues/1732[#1732]: Add stash support for git-pull * https://github.com/devonfw/IDEasy/issues/1747[#1747]: Fixed macOS x64 native image build using macos-15-intel runner * https://github.com/devonfw/IDEasy/issues/1738[#1738]: FileAccess.delete no longer follows directory links during recursive delete From 87a1c9deea2bd376fdf9e9be14c06bdfdd0d1768 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 15:47:47 +0100 Subject: [PATCH 10/26] #1724: fixed pom.xml jar configuration in gui module --- .../com/devonfw/tools/ide/tool/gui/Gui.java | 3 --- gui/pom.xml | 25 +++++++------------ 2 files changed, 9 insertions(+), 19 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index c3f959a98..d9097fe3f 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -19,7 +19,6 @@ public class Gui extends Commandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - //TODO: implement constant in sync with maven property gui.relative_pom_path private static final String POM_PATH = "gui-execution"; /** @@ -31,14 +30,12 @@ public Gui(IdeContext context) { addKeyword("gui"); } - @Override public String getName() { return "gui"; } - @Override protected void doRun() { diff --git a/gui/pom.xml b/gui/pom.xml index 31eb2e6ba..52695dec2 100644 --- a/gui/pom.xml +++ b/gui/pom.xml @@ -65,22 +65,15 @@ org.apache.maven.plugins maven-jar-plugin - - - package - - jar - - - - - com.devonfw.ide.gui.AppLauncher - true - - - - - + + + + com.devonfw.ide.gui.AppLauncher + true + + + + org.openjfx From 81e6128a94033cb5b873f8556d31c59ac8aa50e1 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Fri, 27 Mar 2026 16:12:23 +0100 Subject: [PATCH 11/26] #1724: reverted accidental change --- .../com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java index 329b4054b..dcff28459 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java +++ b/cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java @@ -27,6 +27,7 @@ import com.devonfw.tools.ide.tool.eclipse.Eclipse; import com.devonfw.tools.ide.tool.gcviewer.GcViewer; import com.devonfw.tools.ide.tool.gh.Gh; +import com.devonfw.tools.ide.tool.go.Go; import com.devonfw.tools.ide.tool.graalvm.GraalVm; import com.devonfw.tools.ide.tool.gradle.Gradle; import com.devonfw.tools.ide.tool.gui.Gui; @@ -146,6 +147,7 @@ public CommandletManagerImpl(IdeContext context) { add(new Yarn(context)); add(new Corepack(context)); add(new Pip(context)); + add(new Go(context)); add(new Gui(context)); } From 8436d4cc202d7fedf6bcbe6c5f339e1257f66e88 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Thu, 2 Apr 2026 17:05:55 +0200 Subject: [PATCH 12/26] #1724: updated gui-launcher/pom.xml --- gui-launcher/pom.xml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/gui-launcher/pom.xml b/gui-launcher/pom.xml index c3d0cd147..865957ad6 100644 --- a/gui-launcher/pom.xml +++ b/gui-launcher/pom.xml @@ -23,22 +23,8 @@ - - 25 - 25 - UTF-8 - - - - org.codehaus.mojo - exec-maven-plugin - 3.1.0 - - com.devonfw.ide.gui.AppLauncher - - maven-resources-plugin 3.3.1 From 9336bb4306337f9ffce6100ca9082a6ec45fd0e6 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Thu, 2 Apr 2026 17:10:00 +0200 Subject: [PATCH 13/26] #1724: updated CHANGELOG.adoc --- CHANGELOG.adoc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 178468387..cb75af502 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -2,13 +2,18 @@ This file documents all notable changes to https://github.com/devonfw/IDEasy[IDEasy]. +== 2026.05.001 + +Release with new features and bugfixes: + +* https://github.com/devonfw/IDEasy/issues/1724[#1724]: add gui CLI commandlet. + == 2026.04.001 Release with new features and bugfixes: * https://github.com/devonfw/IDEasy/issues/1702[#1702]: UI Buttons do not scale properly with window resize * https://github.com/devonfw/IDEasy/issues/1751[#1751]: Add go-lang CLI commandlet. -* https://github.com/devonfw/IDEasy/issues/1724[#1724]: add gui CLI commandlet. * https://github.com/devonfw/IDEasy/issues/1732[#1732]: Add stash support for git-pull * https://github.com/devonfw/IDEasy/issues/1747[#1747]: Fixed macOS x64 native image build using macos-15-intel runner * https://github.com/devonfw/IDEasy/issues/1738[#1738]: FileAccess.delete no longer follows directory links during recursive delete From 96d3fc8f29dc3b7c697865efa4cd27fa58651531 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 2 Apr 2026 17:16:57 +0200 Subject: [PATCH 14/26] Update cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit small fix in Gui.java Co-authored-by: Jörg Hohwiller --- cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index d9097fe3f..471978d42 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -27,7 +27,7 @@ public class Gui extends Commandlet { public Gui(IdeContext context) { super(context); - addKeyword("gui"); + addKeyword(getName()); } @Override From 3ab84024f72ad10ee85d5daaf2fac91683f39f8a Mon Sep 17 00:00:00 2001 From: laim2003 Date: Tue, 7 Apr 2026 09:12:49 +0200 Subject: [PATCH 15/26] #1724: updated java version in pom.xml --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d7e6450fe..fe119940e 100644 --- a/pom.xml +++ b/pom.xml @@ -19,13 +19,13 @@ IDEasy ${revision} - 21 + 25 3.30.6 2.4.1 2.18.3 2.11.0 3.11.0 - 21 + 25 4.0.18 0.10.6 3.7.1 From 3ba298f2fb73a120a48e5544bcaeb1e8dac82325 Mon Sep 17 00:00:00 2001 From: Lukas Faber Date: Tue, 7 Apr 2026 09:16:18 +0200 Subject: [PATCH 16/26] #1724: - updated java version to 25 in the GitHub action files --- .github/workflows/build-pr.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/mutation-test.yml | 2 +- .github/workflows/nightly-build.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/update-cve.yml | 2 +- .github/workflows/update-urls.yml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-pr.yml b/.github/workflows/build-pr.yml index 4fabb71f0..ded1e22a0 100644 --- a/.github/workflows/build-pr.yml +++ b/.github/workflows/build-pr.yml @@ -12,7 +12,7 @@ jobs: uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '21' + java-version: '25' - name: Build project with Maven run: mvn -B -ntp -Dstyle.color=always install env: diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65ce4b222..775872ac7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ jobs: uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '21' + java-version: '25' - name: Build project with Maven run: mvn -B -ntp -Dstyle.color=always install - name: Coveralls GitHub Action diff --git a/.github/workflows/mutation-test.yml b/.github/workflows/mutation-test.yml index 1db28edfc..39b31dbcf 100644 --- a/.github/workflows/mutation-test.yml +++ b/.github/workflows/mutation-test.yml @@ -17,7 +17,7 @@ jobs: uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '17' + java-version: '25' - name: Run pitest coverage run: | cd cli diff --git a/.github/workflows/nightly-build.yml b/.github/workflows/nightly-build.yml index ee3e5935e..9a1ec298f 100644 --- a/.github/workflows/nightly-build.yml +++ b/.github/workflows/nightly-build.yml @@ -73,7 +73,7 @@ jobs: uses: actions/setup-java@v3 with: distribution: 'temurin' - java-version: '21' + java-version: '25' - name: Download natives and build project uses: actions/download-artifact@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b3142123e..45a21ca71 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -78,7 +78,7 @@ jobs: - name: Set up Apache Maven Central uses: actions/setup-java@v3 with: - java-version: 21 + java-version: 25 distribution: 'temurin' cache: 'maven' gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} # Value of the GPG private key to import diff --git a/.github/workflows/update-cve.yml b/.github/workflows/update-cve.yml index 05c03402e..3892c1c4c 100644 --- a/.github/workflows/update-cve.yml +++ b/.github/workflows/update-cve.yml @@ -18,7 +18,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v3 with: - java-version: '21' + java-version: '25' distribution: 'temurin' cache: 'maven' - name: Cache CVE Database diff --git a/.github/workflows/update-urls.yml b/.github/workflows/update-urls.yml index 6dfded653..c3b12e7bb 100644 --- a/.github/workflows/update-urls.yml +++ b/.github/workflows/update-urls.yml @@ -20,7 +20,7 @@ jobs: - name: Set up Java uses: actions/setup-java@v3 with: - java-version: 21 + java-version: 25 distribution: 'temurin' cache: 'maven' - name: Build and run url updater From 2040cb5c41391d6b5f19cbe070d4c69b8b3fa345 Mon Sep 17 00:00:00 2001 From: Lukas Faber Date: Tue, 7 Apr 2026 09:32:04 +0200 Subject: [PATCH 17/26] #1724: Updated CHANGELOG.adoc --- CHANGELOG.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index d5418bf2e..595542e24 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -6,6 +6,8 @@ This file documents all notable changes to https://github.com/devonfw/IDEasy[IDE Release with new features and bugfixes: +* https://github.com/devonfw/IDEasy/issues/1724[#1724]: Add gui commandlet + The full list of changes for this release can be found in https://github.com/devonfw/IDEasy/milestone/43?closed=1[milestone 2026.04.002]. == 2026.04.001 From 59f50975f041043aba38bcf43c02e01284c457c0 Mon Sep 17 00:00:00 2001 From: Lukas Faber Date: Thu, 9 Apr 2026 19:58:53 +0200 Subject: [PATCH 18/26] #1724: added java version dependency (for some reason, these changes got lost. Probably a shelving issue.) - fixed issues with MainClass path --- .../com/devonfw/tools/ide/tool/gui/Gui.java | 39 +++++++++++++++++-- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 471978d42..0b8c5d0b8 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -1,5 +1,6 @@ package com.devonfw.tools.ide.tool.gui; +import java.nio.file.Path; import java.util.List; import org.slf4j.Logger; @@ -7,18 +8,27 @@ import com.devonfw.tools.ide.commandlet.Commandlet; import com.devonfw.tools.ide.context.IdeContext; +import com.devonfw.tools.ide.process.ProcessContext; +import com.devonfw.tools.ide.process.ProcessContextImpl; import com.devonfw.tools.ide.process.ProcessMode; +import com.devonfw.tools.ide.tool.ToolEdition; +import com.devonfw.tools.ide.tool.ToolEditionAndVersion; +import com.devonfw.tools.ide.tool.ToolInstallRequest; +import com.devonfw.tools.ide.tool.java.Java; import com.devonfw.tools.ide.tool.mvn.Mvn; -import com.devonfw.tools.ide.tool.mvn.MvnBasedLocalToolCommandlet; import com.devonfw.tools.ide.variable.IdeVariables; +import com.devonfw.tools.ide.version.BoundaryType; +import com.devonfw.tools.ide.version.VersionIdentifier; +import com.devonfw.tools.ide.version.VersionRange; /** - * {@link MvnBasedLocalToolCommandlet} to launch the IDEasy GUI. + * {@link Commandlet} to launch the IDEasy GUI. */ public class Gui extends Commandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); + //TODO: implement constant in sync with maven property gui.relative_pom_path private static final String POM_PATH = "gui-execution"; /** @@ -39,17 +49,38 @@ public String getName() { @Override protected void doRun() { + ProcessContext processContext = new ProcessContextImpl(this.context); + + ToolInstallRequest toolInstallRequest = new ToolInstallRequest(true); + toolInstallRequest.setProcessContext(processContext); + toolInstallRequest.setRequested( + new ToolEditionAndVersion( + new ToolEdition("java", "25"), + VersionRange.of(VersionIdentifier.of("25"), VersionIdentifier.of(""), BoundaryType.RIGHT_OPEN) + ) + ); + + Java java = this.context.getCommandletManager().getCommandlet(Java.class); + java.installAsDependency( + (VersionRange) toolInstallRequest.getRequested().getVersion(), + toolInstallRequest + ); + LOG.debug("Starting GUI via commandlet"); Mvn mvn = context.getCommandletManager().getCommandlet(Mvn.class); List args = List.of( "-f", - IdeVariables.IDE_ROOT.get(context).toString() + "/_ide/installation/" + POM_PATH + "/pom.xml", + Path.of(IdeVariables.IDE_ROOT.get(context).toString(), "_ide", "installation", POM_PATH, "pom.xml").toString(), "exec:java", "-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher" ); - mvn.runTool(context.newProcess(), ProcessMode.DEFAULT, args); + try { + mvn.runTool(processContext, ProcessMode.DEFAULT, args); + } catch (IllegalStateException e) { + LOG.error("ERROR WHILE LAUNCHING GUI: Recommended to check if POM file exists in _ide/installation/gui-execution/pom.xml", e); + } } } From 6c2a6755e3fb380548852780c94274be6387f021 Mon Sep 17 00:00:00 2001 From: Lukas Faber Date: Fri, 10 Apr 2026 16:21:36 +0200 Subject: [PATCH 19/26] #1724: - fixed issue with broken classpath configuration. --- cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java | 6 ++++-- gui-launcher/pom.xml | 1 - gui/pom.xml | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 0b8c5d0b8..2f50dac8b 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -73,8 +73,10 @@ protected void doRun() { List args = List.of( "-f", Path.of(IdeVariables.IDE_ROOT.get(context).toString(), "_ide", "installation", POM_PATH, "pom.xml").toString(), - "exec:java", - "-Dexec.mainClass=com.devonfw.ide.gui.AppLauncher" + "exec:exec", + "-Dexec.executable=java", + "-Dexec.classpathScope=compile", + "-Dexec.args=-classpath %classpath com.devonfw.ide.gui.AppLauncher" ); try { diff --git a/gui-launcher/pom.xml b/gui-launcher/pom.xml index 865957ad6..9436f9b98 100644 --- a/gui-launcher/pom.xml +++ b/gui-launcher/pom.xml @@ -19,7 +19,6 @@ com.devonfw.tools.IDEasy ide-gui ${revision} - jar diff --git a/gui/pom.xml b/gui/pom.xml index 52695dec2..c1b722f4d 100644 --- a/gui/pom.xml +++ b/gui/pom.xml @@ -73,7 +73,6 @@ - org.openjfx From 55303b7b6fce3db10b4483f69d26499cf1cfecd9 Mon Sep 17 00:00:00 2001 From: Lukas Faber Date: Fri, 10 Apr 2026 16:51:42 +0200 Subject: [PATCH 20/26] #1724: - Added error message/handling for cases in which the pom.xml file does not exist. --- .../java/com/devonfw/tools/ide/tool/gui/Gui.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 2f50dac8b..8b30bfb9c 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -28,7 +28,6 @@ public class Gui extends Commandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - //TODO: implement constant in sync with maven property gui.relative_pom_path private static final String POM_PATH = "gui-execution"; /** @@ -70,19 +69,21 @@ protected void doRun() { Mvn mvn = context.getCommandletManager().getCommandlet(Mvn.class); + Path pomPath = Path.of(IdeVariables.IDE_ROOT.get(context).toString(), "_ide", "installation", POM_PATH, "pom.xml"); + if (!pomPath.toFile().exists()) { + LOG.error("Fatal error: The pom.xml file required for launching the IDEasy GUI could not be found in expected location: {}", pomPath); + return; + } + List args = List.of( "-f", - Path.of(IdeVariables.IDE_ROOT.get(context).toString(), "_ide", "installation", POM_PATH, "pom.xml").toString(), + pomPath.toString(), "exec:exec", "-Dexec.executable=java", "-Dexec.classpathScope=compile", "-Dexec.args=-classpath %classpath com.devonfw.ide.gui.AppLauncher" ); - try { - mvn.runTool(processContext, ProcessMode.DEFAULT, args); - } catch (IllegalStateException e) { - LOG.error("ERROR WHILE LAUNCHING GUI: Recommended to check if POM file exists in _ide/installation/gui-execution/pom.xml", e); - } + mvn.runTool(processContext, ProcessMode.DEFAULT, args); } } From 893d4a7f7f29282ef1f6faad67fd8c63b398f408 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 13 Apr 2026 14:48:13 +0200 Subject: [PATCH 21/26] Update cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jörg Hohwiller --- cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 8b30bfb9c..06747aa83 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -69,7 +69,7 @@ protected void doRun() { Mvn mvn = context.getCommandletManager().getCommandlet(Mvn.class); - Path pomPath = Path.of(IdeVariables.IDE_ROOT.get(context).toString(), "_ide", "installation", POM_PATH, "pom.xml"); + Path pomPath = context.getIdeInstallationPath().resolve("gui/pom.xml"); if (!pomPath.toFile().exists()) { LOG.error("Fatal error: The pom.xml file required for launching the IDEasy GUI could not be found in expected location: {}", pomPath); return; From 7db63d865b30959267d596225960d4385c4ea659 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 13 Apr 2026 14:48:42 +0200 Subject: [PATCH 22/26] Update cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jörg Hohwiller --- cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 06747aa83..3a862167c 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -70,7 +70,7 @@ protected void doRun() { Mvn mvn = context.getCommandletManager().getCommandlet(Mvn.class); Path pomPath = context.getIdeInstallationPath().resolve("gui/pom.xml"); - if (!pomPath.toFile().exists()) { + if (!Files.exists(pomPath)) { LOG.error("Fatal error: The pom.xml file required for launching the IDEasy GUI could not be found in expected location: {}", pomPath); return; } From ce8fef1c8371dce391c6bb494a3cf860813d77f6 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 13 Apr 2026 14:51:45 +0200 Subject: [PATCH 23/26] Update cli/pom.xml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jörg Hohwiller --- cli/pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/cli/pom.xml b/cli/pom.xml index cc3ba074d..c8d82ca04 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -209,7 +209,6 @@ org.apache.maven.plugins maven-antrun-plugin - 3.1.0 copy-gui-pom From a5a778a9f186a2536e9fbb8317609cb30c7cf04f Mon Sep 17 00:00:00 2001 From: laim2003 Date: Mon, 13 Apr 2026 14:54:21 +0200 Subject: [PATCH 24/26] #1802: - using getIdeInstallationPath instead of manual path --- cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java | 4 +--- pom.xml | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index 3a862167c..dfb45010e 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -1,5 +1,6 @@ package com.devonfw.tools.ide.tool.gui; +import java.nio.file.Files; import java.nio.file.Path; import java.util.List; @@ -16,7 +17,6 @@ import com.devonfw.tools.ide.tool.ToolInstallRequest; import com.devonfw.tools.ide.tool.java.Java; import com.devonfw.tools.ide.tool.mvn.Mvn; -import com.devonfw.tools.ide.variable.IdeVariables; import com.devonfw.tools.ide.version.BoundaryType; import com.devonfw.tools.ide.version.VersionIdentifier; import com.devonfw.tools.ide.version.VersionRange; @@ -28,8 +28,6 @@ public class Gui extends Commandlet { private static final Logger LOG = LoggerFactory.getLogger(Gui.class); - private static final String POM_PATH = "gui-execution"; - /** * @param context the {@link IdeContext}. */ diff --git a/pom.xml b/pom.xml index fe119940e..d09e57048 100644 --- a/pom.xml +++ b/pom.xml @@ -31,7 +31,7 @@ 3.7.1 3.6.1 24.2.1 - gui-execution + gui From c209998c7887065074ea2a25454b48a58dee96f9 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Mon, 13 Apr 2026 20:55:09 +0200 Subject: [PATCH 25/26] #1802: - moved the copying logic of the pom.xml from gui-launcher to the ide-gui-launcher module from ide-cli --- cli/pom.xml | 23 ----------------- gui-launcher/pom.xml | 59 +++++++++++++++++++++++--------------------- 2 files changed, 31 insertions(+), 51 deletions(-) diff --git a/cli/pom.xml b/cli/pom.xml index c8d82ca04..d12c06d93 100644 --- a/cli/pom.xml +++ b/cli/pom.xml @@ -206,29 +206,6 @@ - - org.apache.maven.plugins - maven-antrun-plugin - - - copy-gui-pom - prepare-package - - run - - - - - - - - - - - diff --git a/gui-launcher/pom.xml b/gui-launcher/pom.xml index 9436f9b98..6979124d8 100644 --- a/gui-launcher/pom.xml +++ b/gui-launcher/pom.xml @@ -22,33 +22,36 @@ - - - - maven-resources-plugin - 3.3.1 - - - copy-gui-launcher-flattened-pom - prepare-package - - copy-resources - - - ${project.build.directory}/package/gui - - - ${project.basedir} - - .flattened-pom.xml - - - - - - - - - + + + assembly + + + + org.apache.maven.plugins + maven-antrun-plugin + + + copy-gui-pom + prepare-package + + run + + + + + + + + + + + + + + From db4b19a807894ca51fb34303923da69c97072e83 Mon Sep 17 00:00:00 2001 From: laim2003 Date: Tue, 14 Apr 2026 14:28:15 +0200 Subject: [PATCH 26/26] #1724: java is now being installed correctly --- .../java/com/devonfw/tools/ide/tool/gui/Gui.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java index dfb45010e..af207ed6d 100644 --- a/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java +++ b/cli/src/main/java/com/devonfw/tools/ide/tool/gui/Gui.java @@ -17,8 +17,6 @@ import com.devonfw.tools.ide.tool.ToolInstallRequest; import com.devonfw.tools.ide.tool.java.Java; import com.devonfw.tools.ide.tool.mvn.Mvn; -import com.devonfw.tools.ide.version.BoundaryType; -import com.devonfw.tools.ide.version.VersionIdentifier; import com.devonfw.tools.ide.version.VersionRange; /** @@ -48,20 +46,17 @@ protected void doRun() { ProcessContext processContext = new ProcessContextImpl(this.context); - ToolInstallRequest toolInstallRequest = new ToolInstallRequest(true); + ToolInstallRequest toolInstallRequest = new ToolInstallRequest(false); toolInstallRequest.setProcessContext(processContext); toolInstallRequest.setRequested( new ToolEditionAndVersion( - new ToolEdition("java", "25"), - VersionRange.of(VersionIdentifier.of("25"), VersionIdentifier.of(""), BoundaryType.RIGHT_OPEN) + new ToolEdition("java", "java"), + VersionRange.of("[25,)") ) ); Java java = this.context.getCommandletManager().getCommandlet(Java.class); - java.installAsDependency( - (VersionRange) toolInstallRequest.getRequested().getVersion(), - toolInstallRequest - ); + java.install(toolInstallRequest); LOG.debug("Starting GUI via commandlet");